实现Ubuntu Hadoop高可用需配置NameNode和ResourceManager的高可用,依赖ZooKeeper集群实现故障自动切换,步骤如下:
环境准备
配置ZooKeeper集群
zoo.cfg
配置集群地址(如server.1=zk1:2181,server.2=zk2:2181,server.3=zk3:2181
)。zkServer.sh start
,验证状态为Leader
或Follower
。配置NameNode高可用
core-site.xml
:设置fs.defaultFS
为集群名称(如hdfs://mycluster
),指定ZooKeeper地址ha.zookeeper.quorum
。hdfs-site.xml
:
dfs.nameservices
,配置主备NameNode的RPC和HTTP地址dfs.namenode.rpc-address
/http-address
。dfs.namenode.shared.edits.dir
指向JournalNode(如qjournal://jn1:8485;jn2:8485;jn3:8485/mycluster
)。dfs.ha.automatic-failover.enabled=true
。hdfs namenode -initializeSharedEdits
。hdfs --daemon start journalnode
。hdfs namenode -format
,并同步元数据到备NameNode。配置ResourceManager高可用
yarn-site.xml
中启用ResourceManager HA:<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>mycluster</value>
</property>
```。
yarn.resourcemanager.hostname
。启动集群并验证
jps
查看进程状态,模拟节点故障(如关闭主NameNode),观察是否自动切换至备节点。监控与优化
关键组件说明:
参考资料: