三:hadoop HA YEAR架构总结及各组件功能(原理总结)

内容:在前面搭建和熟悉各组件启动流程下,今天总结下hadoop的HA YEAR架构,同时看看各组件的功能,理清启动顺序,并进行相关组件对比
*
目录结构:

  1. 前期搭建规划
  2. hadoop HA 架构及功能
  3. hadoop YEAR架构及功能
  4. 启动/关闭流程总结
  5. 两架构对比及其它

1、前期搭建规划

在这里插入图片描述

2、hadoop HA 架构及功能

HDFS HA: 是为了解决单点故障问题,通过JN集群共享状态,通过ZKFC 选举active,监控状态,自动备援。DN会同时向active standby nn发送心跳。

在这里插入图片描述

3、hadoop YEAR架构及功能

在这里插入图片描述

4、启动/关闭流程总结

启动流程和架构里从上往下一致:

ZooKeeper -> JournalNode -> NameNode -> DataNode -> ZKFC -> 主 ResourceManager/NodeManager -> 备机ResourceManager-> MapReduce JobHistory

5、两架构对比及其它

两架构对比:1、ZKFC不一样;2、接收心跳方式不一样;3、NN/RM的Active选举方式不一样,主要是因为两组件的功能不一样决定;

另外:
集群启动之后,一个namenode是active状态,来处理client与datanode之间的请求,并把相应的日志文件写到本地中或JN中;
 Active NN与Standby NN之间是通过一组JN共享数据(JN一般为奇数个,ZK一般也为奇数个),Active NN会把日志文件、镜像文件写到JN中去,只要JN中有一半写成功,那就表明Active NN向JN中写成功啦,Standby NN就开始从JN中读取数据,来实现与Active NN数据同步,这种方式支持容错,因为Standby NN在启动的时候,会加载镜像文件(fsimage)并周期性的从JN中获取日志文件来保持与Active NN同步
 为了实现Standby NN在Active NN挂掉之后,能迅速的再提供服务,需要DN不仅需要向Active NN汇报,同时还要向Standby NN汇报,这样就使得Standby NN能保存数据块在DN上的位置信息,因为在NameNode在启动过程中最费时工作,就是处理所有DN上的数据块的信息
 为了实现Active NN高热备,增加了FailoverController和ZK,FailoverController通过Heartbeat的方式与ZK通信,通过ZK来选举,一旦Active NN挂掉,就选取另一个FailoverController作为active状态,然后FailoverController通过rpc,让standby NN转变为Active NN
FailoverController一方面监控NN的状态信息,一方面还向ZK定时发送心跳,使自己被选举。当自己被选为主(Active)的时候,就会通过rpc使相应NN转变Active状态

猜你喜欢

转载自blog.csdn.net/weizhonggui/article/details/84614416