HA机制
hadoop2.x
-
hadoop-HA(high available)
所谓HA,即
高可用
(7*24小时不中断服务),消除单点故障
hadoop的HAf分为各个组件的HA机制-----HDFS的HA,Yarn的HA
-
HDFS的HA机制
- 通过双namenode消除单点故障
- 双namenode协调工作要点:
元数据管理
方式改变:
内存中各自保存一份元数据
共享的edits放在一个文件系统集群中管理(qjournal和nfs两个主流实现)
两个namenode都可以读取edits
,但只有active状态的namenode节点可以做写操作
HDFS的HA中没有secondarynamenode
,元数据合并交给standby namenode
进行checkpoint需要
状态管理
模块:
实现一个zkfailover,常驻在每一个namenodde所在节点
每一个zkfc负责监控自己所在namenode
节点,利用zk进行状态标识,当需要状态切换时,由zkfc负责切换
当standby
这一端的zkfc收到
active端的故障通知
,不会立即把自己的状态变成active
,防止brain split 脑裂(即两个namenode都处于active状态
)防止脑裂
的方法:
远程kill掉active端的namenode
等待ssh kill的返回命令
如果响应成功,状态切换为active
如果响应失败或超时
(可以配置超时时间),需要调用用户提供的一个脚本来处理,确保另一端namenode一定被kill掉
只要shell脚本调用的返回值为true,则切换自己端的namenode状态为true
hadoop 2.x 新机制
联邦机制federation
-
两个namenode属于一个nameservice命名空间
-
两个nameservice共用一套datanode
-
但是在datanode上的存储数据路径不一样
-
两个nameservice由ViewFS进行管理
-
客户端与nameservice1连接,可获取nameservice1的元数据
-
与nameservice2连接,获取的是nameservice2的元数据
-
作用:
缓解集群过大,一个nameservice存储的元数据过多的问题