Zhouyao's Blog

Do Something Big With Us

HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》

1.1 网络上的大部分教程的顺序

1. 启动顺序

  • Hadoop
  • ZooKeeper
  • HBase
  • 第二个HMaster

2. 停止顺序

  • 第二个 HMaster,kill-9 删除
  • Hbase
  • ZooKeeper
  • Hadoop

Note:网上的以上的顺序并不适合 HA 模式下


1.2 主机规划

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》


1.3 正确的启动顺序

1. ZooKeeper -> Hadoop -> HBase2. ZooKeeper -> JournalNode (Hadoop) -> NameNode (Hadoop) -> DataNode (Hadoop) -> 主 ResourceManager/NodeManager (Hadoop) -> 备份 ResourceManager (Hadoop) -> ZKFC (Hadoop) ->MapReduce JobHistory (Hadoop) -> 主 Hmaster/HRegionServer (HBase) ->备份 Hmaster (HBase)


二. 首次启动/格式化集群

1. 启动 ZooKeeper 集群在集群中安装 ZooKeeper 的主机上启动 ZooKeeper 服务。在本教程中也就是在 slave51、slave52、slave53 的主机上启动相应进程。分别登陆到三台机子上执行:

zkServer.sh start

2. 格式化 ZooKeeper 集群在任意的 namenode 上都可以执行,笔者还是选择了 master5 主机执行格式化命令

hdfs zkfc –formatZK

3. 启动 JournalNode 集群分别在 slave51、slave52、slave53 上执行以下命令

hadoop-daemon.sh start journalnode

4. 格式化集群的 NameNode在 master5 的主机上执行以下命令,以格式化 namenode:

hdfs namenode -format

5. 启动刚格式化的 NameNode刚在 master5 上格式化了 namenode ,故就在 master5 上执行

adoop-daemon.sh start namenode

6. 同步 NameNode1 元数据到 NameNode2 上复制你 NameNode 上的元数据目录到另一个 NameNode,也就是此处的 master5 复制元数据到 master52 上。在 master52 上执行以下命令:

hdfs namenode -bootstrapStandby

7. 启动 NameNode2master52 主机拷贝了元数据之后,就接着启动 namenode 进程了,执行

hadoop-daemon.sh start namenode

8. 启动集群中所有的DataNode在 master5 上执行

hadoop-daemons.sh start datanode

9. 在 RM1 启动 YARN在 master5 的主机上执行以下命令:

start-yarn.sh

10. 在 RM2 单独启动 YARN虽然上一步启动了 YARN ,但是在 master52 上是没有相应的 ResourceManager 进程,故需要在 master52 主机上单独启动:

yarn-daemon.sh start resourcemanager

11. 启动 ZKFC在 master5 和 master52 的主机上分别执行如下命令:

hadoop-daemon.sh start zkfc

12. 开启历史日志服务在 master5 和 master52 的主机上执行

mr-jobhistory-daemon.sh   start historyserver

13. 启动主 HMaster在其中一台主机上启动 Hmaster,即笔者在 master5 上

start-hbase.sh

14. 启动备份 HMaster另一台 Hmaster 的主机上,即笔者在 master52 上,执行以下命令

hbase-daemon.sh start master

三. 开启与关闭集群顺序

3.1 Hadoop 生态系统集群的启动顺序概览

以下中标注红色加粗的即为笔者集群目前已经安装的。

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》


3.2 非首次启动集群

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》


Note:与 “首次启动格式化集群” 不同的是没有 格式化 ZooKeeper 集群格式化集群的 NameNode 这两个步骤!

3.3 Hadoop 生态系统集群的关闭顺序概览

以下中标注红色加粗的即为笔者集群目前已经安装的。

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》


3.4 集群关闭

《HA 模式下的 Hadoop+ZooKeeper+HBase 启动顺序》

注意:一定要按顺序停止,如果先停 ZooKeeper 再停 HBase 的话,基本停不下来


四. 常见问题与参考资料

4.1 常见问题

1. 我启动 ZKFC 和 NameNode 守护进程的顺序重要么?

不重要,在任何给定的节点上,你可以任意顺序启动 ZKFC 和 NameNode 进程

2. 如果Zookeeper宕机会怎样?

如果 Zookeeper 集群宕机,没有自动故障转移将会被触发。但是,HDFS 将继续没有任何影响的运行。当 Zookeeper 被重新启动,HDFS 将重新连接,不会出现问题

3. 我可以指定两个 NameNode 中的一个作为主要的 NameNode 么?

当然不可以。目前,这是不支持的。先启动的 NameNode 将会先变成 Active 状态。你可以指定的顺序,先启动你希望成为 Active 的节点,来完成这个目的。所以笔者我在后面的集群管理脚本中,启动完一台 NameNode 后再启动 ZKFC。和以上的顺序有点出入,但一点问题都木有~

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 74 = 77

This site uses Akismet to reduce spam. Learn how your comment data is processed.