hadoop3.x ha高可用-集群初始化、启动

启动 zookeeper 集群(必须)

登录 hadoop1,执行下面命令:

/program/bin/zk.sh start

启动 Journal Node 集群

登录 hadoop1、hadoop2、hadoop3,分别执行下面命令:

/program/hadoop-3.0.3-ha/bin/hdfs --daemon start journalnode

jps 查看

执行下面命令:

jps

在执行结果中,看到下面进程说明启动成功:

7076 JournalNode

格式化 hadoop1 的 namenode

登录 hadoop1 ,执行下面命令:

/program/hadoop-3.0.3-ha/bin/hdfs namenode -format

格式化成功,显示如下:

查看初始化文件

格式化后,在 core-site.xml 中的 hadoop.tmp.dir配置的目录下,生成个hdfs初始化文件

在 hadoop1 的 /program/hadoop-3.0.3-ha/data/ 目录下,有以下文件夹:

journaldata
tmp

在 hadoop2、hadoop3 的 /program/hadoop-3.0.3-ha/data/ 目录下,有以下文件夹:

journaldata

启动 namenode

登录 hadoop1 ,执行下面命令:

/program/hadoop-3.0.3-ha/bin/hdfs --daemon start namenode

jps 查看

执行下面命令,查看启动是否成功:

jps

执行结果如下:

125796 NameNode

同步元数据 到 hadoop2

登录 hadoop2 ,执行下面命令,进行元数据同步:

/program/hadoop-3.0.3-ha/bin/hdfs namenode -bootstrapStandby

显示如下:

查看文件

在 hadoop2 的 /program/hadoop-3.0.3-ha/data/ 目录下,有以下文件夹:

tmp

格式化 zkfc-设置 active

如果 hadoop1 执行下面命令,那么 hadoop1 的 namenode 就是 active
如果 hadoop2 执行下面命令,那么 hadoop2 的 namenode 就是 active

此处,在 hadoop1 执行下面命令:

/program/hadoop-3.0.3-ha/bin/hdfs zkfc -formatZK

执行结果如下,表示成功:

启动 hdfs 集群

登录 hadoop1,执行下面命令:

/program/hadoop-3.0.3-ha/sbin/start-dfs.sh

执行结果如下:

Starting namenodes on [hadoop1 hadoop2]
上一次登录:一 10月 25 21:15:24 CST 2021从 192.168.58.1pts/2 上
hadoop1: namenode is running as process 125796.  Stop it first.
Starting datanodes
上一次登录:一 10月 25 21:53:22 CST 2021pts/1 上
Starting journal nodes [hadoop1 hadoop2 hadoop3]
上一次登录:一 10月 25 21:53:25 CST 2021pts/1 上
hadoop1: journalnode is running as process 118721.  Stop it first.
hadoop3: journalnode is running as process 17806.  Stop it first.
hadoop2: journalnode is running as process 12751.  Stop it first.
Starting ZK Failover Controllers on NN hosts [hadoop1 hadoop2]

由于之前启动了 hadoop1 的 namenode,以及 journalnode ,所以先停止,再启动

jps 查看

hadoop1,执行下面命令:

jps

显示如下:

118721 JournalNode
118338 QuorumPeerMain
5747 DataNode
9911 DFSZKFailoverController
15113 NameNode

对比集群规划,查看是否全部启动

注意: 如果 NameNode 没有启动成功,重新执行 start-dfs.sh

关闭 hdfs 集群

登录 hadoop1,执行下面命令:

stop-dfs.sh

安装 fuser 命令

Fencing隔离机制 需要通过 fuser 命令,将进程杀死,所以需要安装该命令

登录 hadoop1、hadoop2,执行下面命令进程安装:

yum install psmisc -y

原文出处:/show_1IX26kjPEdRV.html