以下:
NN : NameNode
SNN : SecondaryNameNode
JN : JournalNode
ZKFC : ZKFailoverController
Hadoop 2.0之前,集群中只能有一个NN节点,这带来了两个问题:
1:单点故障(虽然可以用SNN来恢复,但是数据量大的情况下恢复过程缓慢)
2:集群维护、软件版本升级困难
Hadoop 2.0之后的版本做出了改进:一个hadoop集群可以有多个NN节点,其中一个节点为Active状态,其他节点为standby状态。standby节点同步主节点的状态,当主节点down掉的时候可以快速接管。
这项同步工作是通过一组JN来进行的:当HDFS文件系统有修改时,ActiveNN在JN组中记录log,standbyNN读取这些log来跟踪变换。当fail over发生的时候,standbyNN要确保已经同步了所有的log,之后进行接管。
failover可以分为手动和自动。区别是自动的failover需要zookeeper的帮助来进行主节点选举。
手动failover就不多说了,自动failover需要ZKFC的支持,部署前需要先关掉hdfs。要进行配置的参数主要有两个
- ha.zookeeper.quorum,也就是zookeeper节点。
- dfs.ha.automatic-failover.enabled设置为true
配置好之后,执行
hdfs zkfc -formatZK
这条命令将会在zookeeper中初始化数据结构,然后启动hdfs即可,由于配置了dfs.ha.automatic-failover.enabled,ZKFC将会自动启动
start-dfs.sh
activeNN和standbyNN由ZKFC来进行管理
挖个坑在这,更深入的东西等以后再说
173

被折叠的 条评论
为什么被折叠?



