假设我们有3台虚拟机,主机名分别是hadoop01、hadoop02和hadoop03。 这3台虚拟机的Hadoop的HA集群部署计划如下:
hadoop01
|
zookeeper |
journalnode |
nodemanager |
datanode |
resourcemanager |
namenode |
zkfc |
hadoop02
|
zookeeper |
journalnode |
nodemanager |
datanode |
resourcemanager |
namenode |
zkfc |
hadoop03
|
zookeeper |
journalnode |
nodemanager |
datanode |
从上面的集群部署计划中可以看出,3台机器上都部署了Zookeeper、journalnode、nodemanager、datanode,而只有hadoop01和hadoop02这两台机器上部署有zkfc和ResourceManager以及NameNode。 下面是Hadoop的HA集群启动流程: 第一步,在Hadoop01机器上启动Zookeeper: [root@hadoop01 ~]# /root/apps/zookeeper/bin/zkServer.sh start 第二步,在Hadoop02机器上启动Zookeeper: [root@hadoop02 ~]# /root/apps/zookeeper/bin/zkServer.sh start 第三步,在Hadoop03机器上启动Zookeeper: [root@hadoop03 ~]# /root/apps/zookeeper/bin/zkServer.sh start 启动Zookeeper之后,可以分别在3台机器上使用如下命令查看Zookeeper的启动状态: /root/apps/zookeeper/bin/zkServer.sh status 第四步,在Hadoop01机器上启动HDFS: [root@hadoop01 ~]# /root/apps/hadoop/sbin/start-dfs.sh 第五步,在Hadoop01机器上启动YARN: [root@hadoop01 ~]# /root/apps/hadoop/sbin/start-yarn.sh 第六步,在Hadoop02机器上单独启动一个ResourceManager: (注意这里使用的是“yarn-daemon.sh”命令,而不是“hadoop-daemon.sh”,不知道为什么使用“hadoop-daemon.sh”无法启动ResourceManager) [root@hadoop02 ~]# /root/apps/hadoop/sbin/yarn-daemon.sh start resourcemanager 最后,分别在3台机器上使用jps命令查看进程: [root@hadoop01 ~]# jps 2836 ResourceManager 2310 DataNode 2036 QuorumPeerMain 2630 DFSZKFailoverController 2481 JournalNode 2938 NodeManager 3212 Jps 2212 NameNode [root@hadoop02 ~]# jps 2489 DFSZKFailoverController 3281 Jps 2193 QuorumPeerMain 2292 NameNode 2348 DataNode 3028 NodeManager 2427 JournalNode 3244 ResourceManager [root@hadoop03 ~]# jps 2734 Jps 2420 DataNode 2327 QuorumPeerMain 2484 JournalNode 2616 NodeManager [root@hadoop03 ~]# 如果某一个NameNode进程挂掉了的话,就使用如下命令单独启动一个NameNode: /root/apps/hadoop/sbin/hadoop-daemon.sh start namenode ================================================================ 下面是停止Hadoop的HA集群的流程: 第一步,在Hadoop01机器上停止HDFS: [root@hadoop01 ~]# /root/apps/hadoop/sbin/stop-dfs.sh 第二步,在Hadoop01机器上停止YARN: [root@hadoop01 ~]# /root/apps/hadoop/sbin/stop-yarn.sh 第三步,在Hadoop02机器上单独停止ResourceManager: [root@hadoop02 ~]# /root/apps/hadoop/sbin/yarn-daemon.sh stop resourcemanager 第四步,在Hadoop01机器上停止Zookeeper: [root@hadoop01 ~]# /root/apps/zookeeper/bin/zkServer.sh stop 第五步,在Hadoop02机器上停止Zookeeper: [root@hadoop02 ~]# /root/apps/zookeeper/bin/zkServer.sh stop 第六步,在Hadoop03机器上停止Zookeeper: [root@hadoop03 ~]# /root/apps/zookeeper/bin/zkServer.sh stop 最后,分别在3台机器上使用jps命令查看进程,确定有关进程是否停止成功。 [root@hadoop01 ~]# jps 4455 Jps [root@hadoop02 sbin]# jps 4713 Jps [root@hadoop03 ~]# jps 3208 Jps 如果启动或停止Hadoop的时候,遇到了问题,我们想查看一下日志,由于日志中的内容可能会非常多,我们改怎么查看呢?我们以查看hadoop01机器上的namenode的日志为例来说明一下,这里我们使用的是less命令: [root@hadoop01 ~]# less /root/apps/hadoop/logs/hadoop-root-namenode-hadoop01.log 使用以上命令进入到日志之后,按回车光标处会显示一个冒号,输入斜杠“/”会进入到搜索模式,输入关键字再按回车,可以在日志中查询关键字小写的字母“n”可以向下搜索关键字,输入大写的字母“N”可以向上查找关键字。 在键盘上输入大写的字母“G”,可以瞬间跳转到日志的末尾。 输入小写字母“q”可以退出日志。
如果觉得本文对您有帮助,不妨扫描下方微信二维码打赏点,您的鼓励是我前进最大的动力: