实现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),观察是否自动切换至备节点。监控与优化
关键组件说明:
参考资料: