1.关于Hadoop2.2.0中HA的介绍
NameNode 简称: NN
DateNode 简称: DN
JournalNode 简称: JN
Zookeeper 简称: ZK
从上面的图里,我们可以知道HA的大致架构:
01.利用共享存储来在两个NN之间同步元数据信息。
在NN中有两个重要的文件:一个是fsimage,一个是edits,其中fsimage指的是元数据镜像文件,存在磁盘中用来保持文件系统的目录树,然而edits指的是元数据操作日志,针对目录树的修改操作,被写入共享存储系统中,例如DFS,JournalNode。同时元数据镜像文件在内存中保存一份最新的,然后Standby NameNode定期的合并fsimage和edits。
02.DataNode同时向两个NN汇报块信息。
这是让Standby NN 保持集群最新状态的必要步骤。
03.用于监视和控制NN进程采用了FailoverControllerActive进程。
2.实验环境搭建和准备
01.前提是要有一个能手动切换主备NN的集群,如果没有,可以到http://blog.csdn.net/u010967382/article/details/20380387
中去学习如何搭建一个集群。
02.本次实验环境是Ubuntu12.04.4版本的虚拟机4台 :
分别取名为SY-0217 SY-0355 SY-0225 SY-0226 的一个Hadoop集群;
其中 SY-0217 SY-0355 为主备NameNode;
并且 SY-0355 SY-0225 SY-0226 为JouranlNode 。
03.下载Zookeeper并安装
下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.5/ 并把它放到虚拟机的Desktop上。
这下在zookeeper-3.4.5是用于的测试。 最好采用zookeeper-3.4.6因为它做了大量的 bug 修复和功能增强
下载完成后用 解压命令解压: sudo tar -xzvf Dsektop/zookeeper-3.4.5
同时把SY-0217 SY-0355 SY-0225 都安装好zookeeper-3.4.5 (最好是奇数个 原因是zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,