【Hadoop大数据技术】——Hadoop高可用集群(学习笔记)

news/2024/5/20 2:57:50 标签: 大数据, hadoop, 学习, hdfs, 笔记

📖 前言:Hadoop设计之初,在架构设计和应用性能方面存在很多不如人意的地方,如HDFS和YARN集群的主节点只能有一个,如果主节点宕机无法使用,那么将导致HDFS或YARN集群无法使用,针对上述问题,Hadoop在后续的版本更新中做出了改进和完善,用户可以为HDFS和YARN集群添加备用的主节点,这样即使主节点宕机无法使用,备用的主节点也可以代替原有的主节点来维持HDFS和YARN集群能够正常运行,这就是所谓的Hadoop高可用集群。

在这里插入图片描述


目录

  • 🕒 1. 改进与提升
  • 🕒 2. YARN资源管理框架
    • 🕘 2.1 YARN体系结构
    • 🕘 2.2 YARN工作流程
  • 🕒 3. HDFS的高可用
    • 🕘 3.1 HDFS的高可用架构
  • 🕒 4. 课后习题

🕒 1. 改进与提升

组件Hadoop1.0局限和不足Hadoop2.0的改进
HDFSNameNode存在单点故障风险HDFS引入了高可用机制
MapReduceJobTracker存在单点故障风险,且内存扩展受限引入了一个资源管理调度框架YARN

🕒 2. YARN资源管理框架

🕘 2.1 YARN体系结构

YARN(Yet Another Resource Negotiator,另一种资源协调者)是一个通用的资源管理系统和调度平台,它的基本设计思想是将MRv1(Hadoop1.0中MapReduce)中的JobTracker拆分为两个独立任务,这两个任务分别是全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster

在这里插入图片描述

  • ResourceManager是一个全局的资源管理系统,它负责的是整个Yarn集群资源的监控、分配和管理工作。其内部包含了两个组件,分别是调度器(Scheduler)和应用程序管理器(Application Manager)。
  • NodeManager是每个节点上的资源和任务管理器,一方面,它会定时向ResourceManager汇报所在节点资源使用情况;另一方面,它会接收并处理来自ApplicationMaster容器(Container)启动、停止等各种请求。
  • 用户提交的每个应用程序都包含一个ApplicationMaster,它负责协调来自ResourceManager的资源,把获得的资源进一步分配给内部的各个任务,从而实现“二次分配”。

🕘 2.2 YARN工作流程

YARN的底层工作流程是由核心组件互相协调管理,它们各尽其职,为Hadoop资源调度提供服务,其工作流程图如下所示。

在这里插入图片描述

  1. 用户通过客户端Client向YARN提交应用程序Applicastion。
  2. YARN中的ResourceManager接收到客户端请求后,其内部的调度器会为应用程序分配一个容器运行本次程序对应的ApplicationMaster。
  3. ApplicationMaster被创建后,首先向ResourceManager注册信息,用户通过ResourceManager查看应用程序的运行状态。
  4. ApplicationMaster采用轮询方式通过RPC协议向ResourceManager申请资源。
  5. ResourceManager向提出申请的ApplicationMaster分配资源。
  6. NodeManager为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
  7. 各任务通过RPC协议向ApplicationMaster汇报自己的运行状态,从而在任务失败时,ApplicationMaster可重新启动任务。
  8. 应用运行结束后,ApplicationMaster向ResourceManager注销并关闭自己。

🕒 3. HDFS的高可用

🕘 3.1 HDFS的高可用架构

在HDFS分布式文件系统中,NameNode是系统核心节点,存储各类元数据信息,并负责管理文件系统的命名空间客户端对文件的访问。若NameNode发生故障,会导致整个Hadoop集群不可用,即单点故障问题。为了解决单点故障,Hadoop2.0中HDFS中增加了对高可用的支持。

在高可用HDFS中,通常有两台或两台以上机器充当NameNode,无论何时,都要保证至少有一台处于活动(Active)状态,一台处于备用(Standby)状态。Zookeeper为HDFS集群提供自动故障转移的服务,给每个NameNode都分配一个故障恢复控制器(简称ZKFC),用于监控NameNode状态。若NameNode发生故障,Zookeeper通知备用NameNode启动,使其成为活动状态处理客户端请求,从而实现高可用。

在这里插入图片描述

🕒 4. 课后习题

判断题:
1、ResourceManager负责监控ApplicationMaster,并在ApplicationMaster运行失败的时候重启它,因此ResouceManager负责ApplicationMaster内部任务的容错。
2、NodeManager是每个节点上的资源和任务管理器。
3、Hadoop HA是集群中启动两台或两台以上机器充当NameNode,避免一台NameNode节点发生故障导致整个集群不可用的情况。
4、Hadoop HA是两台NameNode同时执行NameNode角色的工作。
5、在Hadoop HA中,Zookeeper集群为每个NameNode都分配了一个故障恢复控制器,该控制器用于监控NameNode的健康状态。

答案(AI解析):
1、错误。ResourceManager并不负责监控ApplicationMaster,而是由YARN(Yet Another Resource Negotiator)来完成这项任务。当ApplicationMaster失败时,ResourceManager会重新分配资源并启动一个新的ApplicationMaster。
2、正确。NodeManager是每个节点上的资源管理器和任务管理器,它负责管理容器、资源使用和任务执行等功能。
3、正确。Hadoop HA通过启动两台或更多的机器作为NameNode,实现了高可用性,防止单点故障导致整个集群不可用。
4、错误。在Hadoop HA中,只有一个Active NameNode在执行NameNode角色的工作,其他的NameNode处于Standby状态。当Active NameNode发生故障时,Standby NameNode将接管其角色。
5、正确。在Hadoop HA中,Zookeeper集群确实为每个NameNode都分配了一个故障恢复控制器,用于监控NameNode的健康状态。

选择题:下列选项描述错误的是?
A、Hadoop HA即集群中包含Secondary NameNode作为备份节点存在。
B、ResourceManager负责的是整个Yarn集群资源的监控、分配和管理工作
C、NodeManager负责定时的向ResourceManager汇报所在节点的资源使用情况以及接收并处理来自ApplicationMaster的启动停止容器(Container)的各种请求。
D、初次启动Hadoop HA集群时,需要将格式化文件系统后的目录拷贝至另外一台NameNode节点上。

答案(AI解析):
选A,这是一个常见的误解,但实际上,在Hadoop HA(高可用性)集群中,不再需要Secondary NameNode。在HA集群中,Standby NameNode还会执行命名空间的检查点操作,因此不需要运行Secondary NameNode、CheckpointNode或BackupNode。实际上,这样做会导致错误。

简答题:简述Hadoop HA集群的启动步骤
答:
(1)启动集群各个节点的Zookeeper服务;
(2)启动集群各个节点监控NameNode的管理日志的JournalNode;
(3)在node-01节点格式化NameNode,并将格式化后的目录拷贝到node-02中;
(4)在node-01节点上格式化ZKFC;
(5)在node-01节点上启动HDFS;
(6)在node-01节点上启动YARN。


OK,以上就是本期知识点“Hadoop高可用集群”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~

❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页


http://www.niftyadmin.cn/n/5443880.html

相关文章

转座子插入序列分析2-自制分析流程

我们先观察一下测序的结果,是否有一些什么规律,因为使用的靶向富集法的测序,我们使用了特殊序列将插入了转座子的部分钓了出来,然后进行的测序,所以理论上富集到的所有序列都应该存在一段与我们钓鱼序列互补的“靶点序…

国自然提交状态,NSFC已审核 ≠ 申请书被受理!!!

本 期 推 荐 【SciencePub学术】2024年度国家自然科学基金集中受理期项目申请受理工作已基本结束。到底什么状态才算申请书被NSFC接收成功呢? 01 申请书状态 申请人登录ISIS系统,至此,绝大部分申请人的系统状态为下面三种: …

数据结构:初识树和二叉树

目前主流的方式是左孩子右兄弟表示法 我们的文件系统就是一个树 以上就是树的概念,我们今天还要来学习一种从树演变的重要的结构:二叉树 顾名思义二叉树就是一个结点最多有两个子树。 其中我们还要了解满二叉树和完全二叉树的概念 注意我们的完全二叉…

LeetCode讲解算法1-排序算法(Python版)

文章目录 一、引言问题提出 二、排序算法1.选择排序(Selection Sort)2.冒泡排序3.插入排序(Insertion Sort)4.希尔排序(Shell Sort)5.归并排序(Merge Sort)6.快速排序(Qu…

【晴问算法】入门篇—贪心算法—区间不相交问题

题目描述 给定n个开区间,从中选择尽可能多的开区间,使得这些开区间两两没有交集。 输入描述 输出描述 输出一个整数,表示最多选择的开区间个数。 样例1输入 4 1 3 2 4 3 5 6 7 输出 3 解释 最多选择(1,3)、(3,5)、(6,7)三个区间,它…

使el-table通过操控鼠标滚轮横向滚动

1.创建directive文件夹&#xff0c;里面创建directive.js文件 import Vue from vue;Vue.directive(scroll-x,{inserted:function(el){let domClass el.getAttribute(class)if(domClass.indexOf(el-table)<0){return false}const scrollDiv el;if(scrollDivnull){return fa…

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(下)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容&#xff0c;包含如下四篇文章&#xff0c;分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。 1、全覆盖路径规划开…

Docker【安装redis】【redis-desktop-manager】

文章目录 前言一、建立挂载目录二、下载运行镜像三、安装redis可视化工具redis-desktop-manager 前言 本文开始默认你已经安装了docker&#xff0c;如果对此还不够了解请看这篇文章&#xff1a;docker的安装 一、建立挂载目录 一般对应mysql、redis这种存储数据的镜像&#x…