尚硅谷大数据技术之Hadoop(HDFS)第8章 HDFS HA高可用

8.3.5 启动HDFS-HA集群

  1. 在各个JournalNode节点上,输入以下命令启动journalnode服务

sbin/hadoop-daemon.sh start journalnode

  1. 2. 在[nn1]上,对其进行格式化,并启动

bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

  1. 3. 在[nn2]上,同步nn1的元数据信息

bin/hdfs namenode -bootstrapStandby

  1. 4. 启动[nn2]

sbin/hadoop-daemon.sh start namenode

  1. 查看web页面显示,如图3-21,3-22所示

  1. 6. 在[nn1]上,启动所有datanode

sbin/hadoop-daemons.sh start datanode

  1. 7. 将[nn1]切换为Active

bin/hdfs haadmin -transitionToActive nn1

  1. 查看是否Active

bin/hdfs haadmin -getServiceState nn1

8.3.6 配置HDFS-HA自动故障转移

  1. 1. 具体配置

(1)在hdfs-site.xml中增加

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

(2)在core-site.xml文件中增加

<property>

<name>ha.zookeeper.quorum</name>

<value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>

</property>

  1. 2. 启动

(1)关闭所有HDFS服务:

sbin/stop-dfs.sh

(2)启动Zookeeper集群:

bin/zkServer.sh start

(3)初始化HA在Zookeeper中状态:

bin/hdfs zkfc -formatZK

(4)启动HDFS服务:

sbin/start-dfs.sh

(5)在各个NameNode节点上启动DFSZK Failover Controller,先在哪台机器启动,哪个机器的NameNode就是Active NameNode

sbin/hadoop-daemin.sh start zkfc

  1. 3. 验证

(1)将Active NameNode进程kill

kill -9 namenode的进程id

(2)将Active NameNode机器断开网络

service network stop