背景
- 在Hadoop2.0中通常由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步Active NameNode的状态,以便能够在它失败时快速进行切换。
- Hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置大于或等于3奇数个JournalNode。
- 需要配置一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为Active状态。
- Hadoop2.4之前的版本ResourceManager只有一个,仍然存在单点故障,Hadoop-2.4.1解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调。
基础软件安装
- JDK 1.7
- Zookeeper 3.4.9
- Hadoop 2.6.1
Hadoop(HDFS HA)总体架构
服务器分布及相关说明
由于目前只有3台虚拟机,所以分配如下:
服务器角色/服务器 | Master(192.168.111.238) | Slave1(192.168.111.239) | Slave2(192.168.111.240) |
NameNode | Y | Y | N |
ResourceManager | Y | Y | N |
DFSZKFailoverController(zkfc) | Y | Y | N |
DataNode | Y | Y | Y |
DataManager | Y | Y | Y |
JournalNode | Y | Y | Y |
Zookeeper | Y | Y | Y |
QuorumPeerMain | Y | Y | Y |
安装步骤
具体的安装步骤请 "阅读原文"。 在微信上排版不好看~
效果