HA工作原理
1.Hadoop HA简介及工作原理
Hadoop NameNode官方开始支持HA集群默认是从2.0开始,之前的版本均是不支持NameNode HA的高可用的。
1.1 Hadoop HA简介
Hadoop-HA集群运作机制介绍
-
HA即高可用(7*24小时不中断服务)
-
实现高可用最关键的是消除单点故障
-
分成各个组件的HA机制——HDFS的HA、YARN的HA
HDFS的HA机制详解
通过双namenode消除单点故障,以下为双namenode协调工作的特点:
A、元数据管理方式需要改变:
-
内存中各自保存一份元数据
-
Edits日志只能有一份,只有Active状态的namenode节点可以做写操作
-
两个namenode都可以读取edits
-
共享的edits放在一个共享存储中管理(qjournal和NFS两个主流实现)
B、需要一个状态管理功能模块
-
实现了一个zkfailover,常驻在每一个namenode所在的节点
-
每一个zkfailover负责监控自己所在namenode节点,利用zk进行状态标识
-
当需要进行状态切换时,由zkfailover来负责切换
-
切换时需要防止brain split现象的发生
使用 Active NameNode,Standby NameNode 两个结点解决单点问题,两个结点通过JounalNode 共享状态,采用ZKFC选举Active实时监控集群状态,自动进行故障备援。
-
Active NameNode:接受 client 的 RPC 请求并处理,同时写自己的 Editlog 和共享存储上的 Editlog,接收 DataNode 的 Block report, block location updates 和 heartbeat;
-
Standby NameNode:同样会接到来自 DataNode 的 Block report, block location updates 和heartbeat,同时会从共享存储的 Editlog 上读取并执行这些 log 操作,使得自己的 NameNode 中的元数据(Namespcae information + Block locations map)都是和 Active NameNode 中的元数据是同步的。所以说 Standby 模式的 NameNode 是一个热备(Hot Standby NameNode),一旦切换成 Active 模式,马上就可以提供 NameNode 服务
-
JounalNode:用于Active NameNode , Standby NameNode 同步数据,本身由一组 JounnalNode 结点组成,该组结点基数个,支持 Paxos 协议,保证高可用,是 CDH5 唯一支持的共享方式(相对于 CDH4 促在NFS共享方式)
-
ZKFC:监控NameNode进程,自动备援。
posted on 2020-11-22 14:36 happygril3 阅读(716) 评论(0) 收藏 举报