🌀 技术人生
凡事有交代,件件有着落,事事有回音
Hadoop集群的Namenode HA高可用配置

HA配置首先要有zookeeper集群,这里就不再说明zookeeper集群的搭建了,可以在我的前面的文章中找到

我这里是在之前Hadoop单点的基础上进行HA配置的

集群HA规划:

cdh0: Namenode Datanode JournalNode NodeManager ZK

cdh1:Namenode Datanode JournalNode ResourceManager NodeManager ZK

cdh2:Datanode ResourceManager NodeManager JournalNode ZK

Namenode HA

hdfs-site.xml: dfs.namenode.secondary.http-address 172.17.0.4:50090 dfs.replication 3 dfs.nameservices mycluster dfs.ha.namenodes.mycluster cdh0,cdh1 dfs.namenode.rpc-address.mycluster.cdh0 cdh0:8020 dfs.namenode.rpc-address.mycluster.cdh1 cdh1:8020 dfs.namenode.http-address.mycluster.cdh0 cdh0:50070 dfs.namenode.http-address.mycluster.cdh1 cdh1:50070 dfs.namenode.shared.edits.dir qjournal://cdh0:8485;cdh1:8485;cdh2:8485/mycluster dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa dfs.journalnode.edits.dir /opt/package/hadoop/jl dfs.permissions.enable false dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

core-site.xml:

fs.defaultFS hdfs://mycluster hadoop.tmp.dir /opt/package/hadoop/data/ fs.trash.interval 10080

然后将这两个配置文件拷贝到其他两台机器上,使用scp命令

在三台机器上启动Journalnode sbin/hadoop-daemon.sh start journalnode

在cdh0机器上进行格式化并启动Namenode和Datanode

bin/hdfs namenode -format sbin/start-dfs.sh

在cdh1上同步cdh0的元数据信息,并启动Namenode

bin/hdfs namenode -bootstrapStandby sbin/hadoop-daemon.sh start namenode

在cdh1上查看服务

bin/hdfs haadmin -getServiceState cdh1

这时候cdh0和cdh1上的Namenode都是处于standby状态,需要手动激活一个

bin/hdfs haadmin -transitionToActive cdh0

最后使用cdh0:50070和cdh1:50070都可以进入Namenode的WEBUI界面,cdh0是active状态,cdh1是standby状态


最后修改于 2018-11-21

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。