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

news2024/11/15 21:31:18

📖 前言: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,并在 ApplicationMaster 运行失败的时候重启,大大提高集群的拓展性。ResourceManager不负责 ApplicationMaster 内部任务的容错,任务的容错由 ApplicationMaster 完成,总体来说,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节点上。

答案:
选A,Secondary NameNode名字给人感觉像是NameNode的备份,实际不是,是属于Standby备用状态。

简答题:简述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.coloradmin.cn/o/1542574.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络协议栈--传输层--UDP/TCP协议

目录 本节重点一、再谈端口号1.1 再谈端口号1.2 端口号范围划分1.3 认识知名端口号(Well-Know Port Number)1.4 回答两个问题1.5 netstat1.6 pidof 二、UDP协议2.1 UDP协议段格式2.2 UDP的特点2.3 面向数据报2.4 UDP的缓冲区2.5 UDP使用注意事项2.6 基于UDP的应用层协议2.7 UDP…

【Linux】nmcli命令详解

目录 ​编辑 一、概述 二、常用参数使用 2.1 nmcli networking 1.显示NM是否接管网络 2.查看网络连接状态 3.开/关网络连接 2.2 general ​编辑 1.显示系统网络状态 2.显示主机名 3.更改主机名 2.3 nmcli connection ​编辑1.显示所有网络连接 2.显示某个网卡的…

基于ssm的酒店民宿管理系统的设计与实现

系统主要功能介绍: 1、登录:输入账号密码进行登录,登录后才能进行相应的操作 2、客房管理:客房管理主要是酒店预订,可以选择不同的房间,比如大床房,家庭房等,入住办理,…

DC电源模块的设计与调试技巧

BOSHIDA DC电源模块的设计与调试技巧 DC电源模块的设计与调试是电子工程师在实际项目中常常需要面对的任务。一个稳定可靠的DC电源模块对于电路的正常运行起到至关重要的作用。以下是一些设计与调试的技巧,帮助工程师们更好地完成任务。 第一,正确选择…

【项目管理后台】Vue3+Ts+Sass实战框架搭建二

Vue3TsSass搭建 git cz的配置mock 数据配置viteMockServe 建立mock/user.ts文件夹测试一下mock是否配置成功 axios二次封装解决env报错问题,ImportMeta”上不存在属性“env” 统一管理相关接口新建api/index.js 路由的配置建立router/index.ts将路由进行集中封装&am…

2014年发射的SAR卫星传感器

2014年有多颗SAR卫星发射。包括Sentinel-1A、ALOS-2、SAOCOM 1A、SMAP。 Sentinel-1A 欧空局(ESA)的Sentinel-1A卫星发射于2014年4月3号,计划发射两颗,载荷为C波段SAR。 Sentinel-1延续了ERS-2和Envisat的观测任务。它具有更快…

宝贝的甜蜜梦乡:新生儿睡眠的温馨指南

引言: 新生儿的睡眠是他们健康成长的重要组成部分,良好的睡眠不仅有助于宝宝的身体发育,还对他们的认知和情绪发展至关重要。然而,新生儿的睡眠模式与成人不同,需要家长们特别关注和照顾。本文将为您介绍新生儿睡眠时间…

linux之zabbix自定义监控

zabbix基本配置见:写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/136783672 自定义监控规则 命令为who | wc -l 显示为2,主机一个,mobaxterm一个,思路是开启3个终端,让主机的zabbix服务自动检测1…

day6:STM32MP157——串口通信实验

使用的是cortex A7内核 【串口通信的工作原理】 本次实验使用的是uart4的串口,分别使用了uart4_tx和uart4_rx两个引脚。根据板子的原理图我们可以知道,他们分别对应着芯片的PG11和PB2 从引脚名字也可以知道使用了GPIO口,所以本次实验同样需…

neo4j所有关系只显示RELATION,而不显示具体的关系

当看r时,真正的关系在properties中的type里,而type为“RELATION” 造成这个的原因是: 在创建关系时,需要指定关系的类型,这是固定的,不能像属性那样从CSV文件的一个字段动态赋值。标准的Cypher查询语言不支…

【MyBatis】初始化过程

MyBatis 初始化过程 可以分为以下几个步骤: 添加依赖:首先,需要在项目的 pom.xml(如果是 Maven 项目)或 build.gradle(如果是 Gradle 项目)文件中添加 MyBatis 以及数据库驱动的依赖。 配置文…

Java集合框架初学者指南:List、Set与Map的实战训练

Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念: List就像一个购物清单&…

Qt程序可执行文件打包

目录 一、新建一个目录二、命令行2.1 添加临时变量2.2 打包命令 三、添加动态库四、普通 Qt 项目打包 Qml 项目打包 笔者写的python程序打包地址(https://blog.csdn.net/qq_43700779/article/details/136994813) 一、新建一个目录 新目录(例如test)用以…

Spring Boot整合Spring Security

Spring Boot 专栏:Spring Boot 从零单排 Spring Cloud 专栏:Spring Cloud 从零单排 GitHub:SpringBootDemo Gitee:SpringBootDemo Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块的默认技术…

基于springboot+vue+Mysql的留守儿童爱心网站

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

学习周报:文献阅读+Fluent案例+水力学理论学习

目录 摘要 Abstract 文献阅读: 文献摘要 现有问题 研究目的及方法 PINN的设置 NS方程介绍 损失函数 训练方法 实验设置 对照组设置 实验结果展示 点云数、隐藏层数和每个隐藏层的节点数对PINN精度的影响 点云数对PINN的影响: 隐藏层数的影…

Kruskal最小生成树【详细解释+动图图解】【sort中的cmp函数】 【例题:洛谷P3366 【模板】最小生成树】

文章目录 Kruskal算法简介Kruskal算法前置知识sort 中的cmp函数 算法思考样例详细示范与解释kruskal模版code↓ 例题:洛谷P3366 【模板】最小生成树code↓完结撒花QWQ Kruskal算法简介 K r u s k a l Kruskal Kruskal 是基于贪心算法的 M S T MST MST 算法&#xff…

探索国内ip切换App:打破网络限制

在国内网络环境中,有时我们会遇到一些限制或者屏蔽,使得我们无法自由访问一些网站或服务。而国内IP切换App的出现,为解决这些问题提供了非常便捷的方式。这些App可以帮助用户切换IP地址,让用户可以轻松地访问被限制或屏蔽的网站&a…

【计算机考研】 跨考408全年复习规划+资料分享

跨专业备考计算机考研408,确实是一项挑战。在有限的时间内,我们需要合理安排时间,制定有效的学习计划,做到有效地备考。回顾我之前对408的经验,我想分享一些备考计划和方法。 要认清自己的起点。作为跨专业考生&#…

AI Infra论文阅读之《在LLM训练中减少激活值内存》

写了一个Megatron-LM的3D Parallel进程组可视化的Playground,界面长下面这样: 可以直接访问:https://huggingface.co/spaces/BBuf/megatron-lm-parallel-group-playground 脚本也开源在:https://github.com/BBuf/megatron-lm-par…