简介
HADOOP2的HDFS上引入HA(High Available)机制以解决单点故障,引入Fedaration机制以解决HDFS拓展性问题。博客将介绍HA机制的原理,以及HDFS HA配置过程。
HA中有两个NameNode:Active NameNode、Standby NameNode。其中Active NN当做主节点,而Standby NN当做备份的主节点,当Active NN崩掉时,可以将Standby NN切换为主节点。而Active NN和Standby NN之间的元数据信息通过第三方服务JournalNode进程进行同步。
如果Active NN崩溃之后,可以手动将Standby NameNode切换成Active NameNode,也可以通过Zookeeper服务进行自动切换。
配置
集群共有5个节点sist17、sist18、sist19、sist20、sist21,由于NameNode的负载较大,因此将其配置在一个节点上,具体配置如下图所示。
具体参数可以参考:http://pan.baidu.com/s/1dDGc1f7
启动
所有配置均在Hadoop部署目录${yarn.home.dir}下进行。
step1.在各个Journal Node节点上,输入以下命令启动Journal Node
sbin/hadoop-daemon.sh start journalnode
step2.在[nn1]上,进行格式化,并启动
bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode
step3.在[nn2]上,同步[nn1]的元数据信息,并启动
bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode
经过以上3步,[nn1]和[nn2]均处在standby状态
step4.[nn1]节点上,将其转换为active状态
bin/hdfs haadmin -transitionToActive nn1
step5.在[nn1]上,启动所有datanode
sbin/hadoop-daemons.sh start datanode
step6.在[nn1]上,启动yarn
sbin/start-yarn.sh
如果要关闭集群,在[nn1]上输入sbin/stop-all.sh即可。以后每次启动的时候,需要按照上面的步骤启动,不过不需要执行step2 的格式化操作。
集群的最终运行效果,如下
总结
HA通过引入Standby Namenode,解决了Hadoop1上HDFS单点故障。如果读者有兴趣的话,可以参考博客,进行HA的配置安装。