文章预览:

  • 1.命名空间
  • 2.HDFS HA的架构
    • 1.Active NN
    • 2.Standby NN
    • 3.Journal Node
    • 4.DataNode
    • 5.ZKFC进程
    • 脑裂解决思路
  • 3.YARN HA
    • 1.Resource Manager
    • 2.Node Manager
    • 3.元数据(rmstore)
  • 4.HDFS HA和YARN HA对比

1.命名空间


当001是active,那么读写没问题;但是当001挂了,002变为active,那么是不是还要去修改 代码 脚本为ruozedata002 ?是要修改的,但是想一想 是不是很麻烦?所以引入一个概念:命名空间
注意:命名空间是配置参数 不是进程
dfs.nameservices - the logical name for this new nameservice
从而实现不需要去修改脚本代码,由命名空间路由到active节点。

2.HDFS HA的架构


以上是最小版的集群,集群角色如下:

ruozedata001 ruozedata002 ruozedata003
ZooKeeper
NameNode
DataNode
JournalNode
DFSZKFailoverControl

1.Active NN

接收client的rpc请求,同时自己的editlog文件写一条记录。同时发给jn日志集群写一条。也同时接收dn的心跳和块报告。

2.Standby NN

1.同时会接收jn日志集群的这条记录,在自己本身执行一下,使得自己的元数据和active nn的元数据是一致的。这步叫做重演。
2.也同时接收dn的心跳和块报告。也随时等待从standby–>active状态,对外提供服务。

3.Journal Node

1.是nn active standby的同步数据,至少3台,奇数。
2.允许失败 (N - 1) / 2 failures and continue to function normally.
3.为了防止脑裂,JN在某一时刻仅允许一个NN写
JN官网:https://hadoop.apache.org/docs/r2.10.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

4.DataNode

同时向两个NN发送心跳和块报告(哪些文件的哪些块)

5.ZKFC进程

1.监控nn的健康状态
2.向zk集群定期发送心跳,使得自己被选举上
3.当被zk集群选举为active时,zkfc进程通过rpc调用nn状态变为active。
4.zkfc的元数据在zookeeper上,当执行zkfc初始化的时候会在zookeeper上生成/hadoop-ha
5.ZK和JN一样,最多只能失败(n-1)/2个

脑裂解决思路

要么重启集群,要么通过hdfs haadmin -transition Toactive辅助指定Standby结合,强制指定哪个为Active/Standby

命令
hdfs haadmin -transition Toactive

3.YARN HA


以上是最小版的集群,集群角色如下:

ruozedata001 ruozedata002 ruozedata003
ZooKeeper
ResourceManager
NodeManager
DFSZKFailoverControl(此处是线程)
JobHistroyServer

ResourceManager的zkfc是线程,存在于RM中,HDFS的HA中ZKFC是单独的进程,如果NN挂 ZKFC不受任何影响更加健壮;RM的元数据信息存储在ZK集群的/rmstore目录,HA信息存储在/yarn-leader-election

1.Resource Manager

1.启动时会向zk集群的/yarn-leader-election目录写个lock文件,写成功就标识为Active,否则为Standby。Standby RM会一直监控lock文件是否存在,如果不存在就尝试去创建,争取为active。

2.会接收client客户端的请求,接收和监控NM的资源汇报,负责资源的分配和调度,启动和监控Application master。

2.Node Manager

1.启动container,运行task计算,上报资源和计算情况给Application master。
2.NM发送心跳指向Active的RM发送,因为如果Active挂了,Standby的转为Active后,会从/rmstore里边读取对应的作业的信息,能重新构建作业的内存信息。

3.元数据(rmstore)

RM的作业信息是存储在zk的/rmstore,Active RM会向这个目录写作业app信息;所以当Active rm挂了,另外一个Standby RM成功转为Active状态,就会从读取对应的作业的信息,重新构建作业的内存信息,启动内部服务,开始接收NM心跳,构建集群资源信息,且开始接收客户端提交的作业的请求。

4.HDFS HA和YARN HA对比

HDFS HA YARN HA
zkfc是进程 zkfc是线程
小弟汇报是2个nn 小弟汇报是active节点(1个)
老大的状态存储是专门的日志集群 利用现成的zk集群
zookeeper存储此相关数据的位置是/hadoop-ha zookeeper存储此相关数据的位置是/rmstore、/yarn-leader-election

Hadoop HA架构相关推荐

  1. hadoop HA 架构

    集群的好处: 每一个角色都是一个进程: HDFS:NN(老大),SNN,DN YARN:RM(老大),NM 老大挂了怎么办? 大数据所有的组件都是主从架构的 master-slave 比如,hdfs读 ...

  2. Hadoop HA 是什么?架构?

    Hadoop  HA 是什么? hadoop2版本中可以有多个namenode结点,一个是活跃(active)状态,一个是准备(standby)状态.(haoop 1不存在此特性) Hadoop HA ...

  3. 新闻网大数据实时分析可视化系统项目——5、Hadoop2.X HA架构与部署

    1.HDFS-HA架构原理介绍 hadoop2.x之后,Clouera提出了QJM/Qurom Journal Manager,这是一个基于Paxos算法实现的HDFS HA方案,它给出了一种较好的解 ...

  4. Hadoop HA 机制学习:HA是怎么运作,QJM又是怎么发挥功效的

    一.Hadoop 系统架构 1.1 Hadoop1.x和Hadoop2.x 架构 在介绍HA之前,我们先来看下Hadoop的系统架构,这对于理解HA是至关重要的.Hadoop 1.x之前,其官方架构如 ...

  5. Hadoop HA 深度解析

    社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 为什么要Namenode HA? 1. NameNode High ...

  6. Hadoop HA+Federation 高可用联邦模式搭建指南

    为什么80%的码农都做不了架构师?>>>    简述 Hadoop 集群一共有4种部署模式,详见<Hadoop 生态圈介绍>. HA联邦模式解决了单纯HA模式的性能瓶颈( ...

  7. Hadoop技术之Hadoop HA 机制学习

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:温球良 导语 最近分享过一次关于Hadoop技术主题的演讲,由于接触时间不长,很多技术细节认识不够,也没讲清楚,作为一个技术人员,本 ...

  8. 图说Hadoop HA

    1.hadoopHA 概览 2.hadoop HA 架构图 3.架构 4.运行流程图 5.组件 转载于:https://www.cnblogs.com/dreamofintellegent/p/579 ...

  9. Hadoop Ha集群配置

    为什么要配置HDFS HA?   首先:HDFS集群中NameNode 如果存在单点故障.对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用. 而影响HD ...

  10. Hadoop Ha (High avilable)配置

    为什么要配置HDFS HA? 首先:HDFS集群中NameNode 如果存在单点故障.对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用. 而影响HDFS ...

最新文章

  1. AI一分钟 | 贾跃亭宣布FF开工,并在京沪展开招聘,回国在望?;亚马逊CEO贝佐斯搭伴波士顿动力机器狗参会
  2. 让小乌龟可以唱歌——对Python turtle进行拓展
  3. 【00】设计模式概要
  4. 微软SQL Server数据库的两种请求游标
  5. 大牛深入浅出讲解C语言#define宏定义应用及使用方法
  6. 【译】为何我们要写super(props)?
  7. 计算机协会丨让技能得到提升,让思维受到启迪
  8. x86_64的内存映射
  9. 苹果支付35亿元和解iPhone“降速门”:国内用户又被忽略了
  10. 对象入参指定泛型类型_如何得到正确的MethodInfo对象当一个类使用泛型和泛型类型参数...
  11. 解锁windows phone 8以进行开发
  12. 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)
  13. ubuntu 的使用(五)—— 桌面(desktop)
  14. 更改swing应用程序标题栏默认图标
  15. Head First 设计模式目录
  16. 1048: 谭浩强C语言(第三版)习题6.4
  17. 浅析Java设计模式——观察者模式
  18. 北京航空航天大学计算机学院系主任,北京航空航天大学计算机学院王蕴红教授访问我中心...
  19. 【Python学习】基于pytorch和pysimplegui实现中国人口预测算法部署
  20. C语言程序设计现代方法(第二版)十二章课后练习题部分答案

热门文章

  1. es文件创建局域网服务器,es文件浏览器局域网连接win10电脑怎么设置
  2. 全球云服务商排名情况及国内云主机市场占有率份额排名对比
  3. [答疑]能举一个人取代业务实体的例子吗
  4. 腾讯邱跃鹏:解密腾讯亿级产品背后网络架构故事
  5. 最具潜力的人工智能机器人玩具(2019年更新)
  6. 【历史上的今天】7 月 10 日:iOS App Store 问世;台积电创始人出生;苹果手机越狱的起源
  7. java 右下角_java右下角弹窗
  8. matplotlib报错Line2D‘ object has no property ‘linestyle‘或‘linewidth‘
  9. 看透说破:客户服务首解率(FCR)的迷思
  10. c语言浮点数常量,C 浮点常量