您的位置:首页 > 运维架构

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

2016-01-01 11:31 429 查看
一 背景
1 网络上的大部分教程的顺序

2 主机规划

3 正确的启动顺序

二 首次启动格式化集群

三 开启与关闭集群顺序
1 Hadoop 生态系统集群的启动顺序概览

2 非首次启动集群

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

4 集群关闭

四 常见问题与参考资料
1 常见问题

2 参考资料

一. 背景

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

1. 启动顺序

Hadoop

ZooKeeper

HBase

第二个HMaster

2. 停止顺序

第二个 HMaster,kill-9 删除

Hbase

ZooKeeper

Hadoop

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

1.2 主机规划

IP主机名用户名部署模块进程
10.6.3.43master5hadoop5NameNode
ResourceManager
HBase
NameNode
DFSZKFailoverController
ResourceManager
HMaster
JobHistoryServer
10.6.3.33master52hadoop5NameNode
ResourceManager
HBase
NameNode
DFSZKFailoverController
ResourceManager
HMaster
JobHistoryServer
10.6.3.48slave51hadoop5DataNode
NodeManager
Zookeeper
HBase
DataNode
NodeManager
HRegionServer
JournalNode
QuorumPeerMain
10.6.3.32slave52hadoop5DataNode
NodeManager
Zookeeper
HBase
DataNode
NodeManager
HRegionServer
JournalNode
QuorumPeerMain
10.6.3.36slave53hadoop5DataNode
NodeManager
Zookeeper
HBase
DataNode
NodeManager
HRegionServer
JournalNode
QuorumPeerMain

1.3 正确的启动顺序

1. ZooKeeper -> Hadoop -> HBase

2. 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. 启动 NameNode2

master52 主机拷贝了元数据之后,就接着启动 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 生态系统集群的启动顺序概览

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

顺序服务备注有关说明和更多信息
1ZooKeeper建议在启动 HDFS 之前先启动 ZooKeeper;这是高可用性 (HA) 部署中的要求。在任何情况下,始终在 HBase 之前先启动 ZooKeeper在单个服务器上安装 ZooKeeper Server 包并启动 ZooKeeper;在生产环境中安装 ZooKeeper;部署 HDFS High Availability;为 ResourceManager (YARN) 配置 高可用性
2HDFS除 ZooKeeper 以外,在所有其它服务之前先启动 HDFS。如果您正在使用 HA,请参阅高可用性指南中的说明在集群中部署 HDFS; HDFS 高可用性
3HttpFSHttpFS 安装
4aMRv1在 Hive 或 Oozie 之前先启动 MapReduce。如果 YARN 正在运行,请勿启动 MRv1在集群中部署 MapReduce v1 (MRv1);为 JobTracker (MRv1) 配置 高可用性
4bYARN在 Hive 或 Oozie 之前启动 YARN。如果 MRv1 正在运行,请勿启动 YARN在集群中部署 MapReduce v2 (YARN)
5HBase启动 HBase Master;在分布式集群中部署 HBase
6Hive在启动 HiveServer2 和 Hive console 之前先启动 Hive Metastore安装 Hive
7Oozie启动 Oozie Server
8Flume 1.x运行 Flume
9SqoopSqoop 安装和 Sqoop 2 安装
10HueHue 安装

3.2 非首次启动集群

顺序步骤操作主机命令开启的相应进程
1启动 ZooKeeper 集群slave51、slave52、slave53
zkServer.sh start
QuorumPeerMain
2启动 JournalNode 集群slave51、slave52、slave53
hadoop-daemon.sh start journalnode
JournalNode
3启动刚格式化的 NameNodemaster5
hadoop-daemon.sh start namenode
NameNode
4同步 NameNode1 元数据到 NameNode2 上master52
hdfs namenode -bootstrapStandby
5启动 NameNode2master52
hadoop-daemon.sh start namenode
NameNode
6启动集群中所有的DataNode1) master5
2) slave51、slave52、slave53
(二者选一即可,下同)
1)
hadoop-daemons.sh start datanode

2)
hadoop-daemon.sh start datanode
DataNode
7在 RM1 启动 YARNmaster5
start-yarn.sh
ResourceManager(master5)
NodeManager(slave节点)
8在 RM2 单独启动 YARNmaster52
yarn-daemon.sh start resourcemanager
ResourceManager
9启动 ZKFCmaster5 与 master52
hadoop-daemon.sh start zkfc
DFSZKFailoverController
10开启历史日志服务master5
mr-jobhistory-daemon.sh   start historyserver
JobHistoryServer
11启动主 HMaster 和 HRegionServermaster5
start-hbase.sh
HMaster (master5上)
HRegionServer (slave节点上)
12启动备份 HMastermaster52
hbase-daemon.sh start master
HMaster
Note:与 “首次启动格式化集群” 不同的是没有 格式化 ZooKeeper 集群格式化集群的 NameNode 这两个步骤!

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

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

关闭顺序服务备注有关说明和更多信息
1Hue在 Hue Server 机器上运行以下内容以停止 Hue:
sudo service hue stop
2aSqoop 1在运行其的所有节点上运行以下内容:
sudo service sqoop-metastore stop
2bSqoop 2在运行其的所有节点上运行以下内容:
sudo /sbin/service sqoop2-server stop
3Flume 0.9在运行 Flume Node 进程的每个节点上将其停止:
sudo service flume-node stop

停止 Flume Master:
sudo service flume-master stop
4Flume 1.x没有 Flume Master在运行 Flume Node 进程的每个节点上将其停止:
sudo service flume-ng-agent stop
5Oozie
sudo service oozie stop
6Hive要停止 Hive,请退出 Hive 控制台,并确保没有 Hive 脚本运行,关闭 HiveServer2:
sudo service hiveserver2 stop

关闭每个客户端上的 Hive Metastore Daemon:
sudo service hive-metastore stop

如果 Metastore 从命令行运行,使用 Ctrl-c 将其关闭
7HBase停止 Thrift Server 和客户端,然后关闭集群要停止 Thrift Server 和客户端:
sudo service hbase-thrift stop

要关闭集群,请在主节点上使用此命令:
hbase-daemon.sh stop master

在托管 Region Server 的每个节点上使用以下命令:
hbase-daemon.sh stop regionserver
8aMapReduce v1停止 MapReduce 之前先停止 Hive 和 Oozie要停止 MapReduce,请停止 JobTracker service,然后在运行 Task Tracker 的所有节点上将其停止。使用以下命令:
sudo service hadoop-0.20-mapreduce-jobtracker stop

sudo service hadoop-0.20-mapreduce-tasktracker stop
8bYARN停止 YARN 之前先停止 Hive 和 Oozie要停止 YARN,请在运行 MapReduce JobHistory 服务、ResourceManager 服务和 NodeManager 的所有节点上停止这些服务。使用以下命令:
hadoop-daemon.sh stop historyserver

yarn-daemon.sh stop resourcemanager

yarn-daemon.sh stop nodemanager
9HttpFS
sudo service hadoop-httpfs stop
10HDFS要停止 HDFS:在 NameNode 上:
hadoop-daemon.sh stop namenode

在 Secondary NameNode 上(如果使用):
hadoop-daemon.sh stop secondnamenode

在每个 DataNode 上:
hadoop-daemon.sh stop datanode
11ZooKeeper在停止 ZooKeeper 之前先停止 HBase 和 HDFS要停止 ZooKeeper Server,请在每个 ZooKeeper 节点上使用以下命令:
zkServer.sh stop

3.4 集群关闭

顺序步骤操作主机命令关闭的相应进程
1关闭备份 HMastermaster52
hbase-daemon.sh stop master
HMaster
2关闭主 HMaster 和 HRegionServermaster5
stop-hbase.sh
HMaster (master5上)
HRegionServer (slave节点上)
3关闭历史日志服务master5
mr-jobhistory-daemon.sh  stop  historyserver
JobHistoryServer
4关闭 ZKFCmaster5 与 master52
hadoop-daemon.sh stop zkfc
DFSZKFailoverController
5在 RM2 单独关闭 YARNmaster52
yarn-daemon.sh stop resourcemanager
ResourceManager
6在 RM1 关闭 YARNmaster5
stopt-yarn.sh
ResourceManager (master5)
NodeManager (slave节点)
7关闭集群中所有的DataNode1) master5
2) slave51、slave52、slave53
(二者选一即可,下同)
1)
hadoop-daemons.sh stop datanode

2)
hadoop-daemon.sh stop datanode
DataNode
8关闭 NameNode2master52
hadoop-daemon.sh stop namenode
NameNode
9关闭剩下的 NameNodemaster5
hadoop-daemon.sh stop namenode
NameNode
10关闭 JournalNode 集群slave51、slave52、slave53
hadoop-daemon.sh stop journalnode
JournalNode
11关闭 ZooKeeper 集群slave51、slave52、slave53
zkServer.sh stop
QuorumPeerMain
注意:一定要按顺序停止,如果先停 ZooKeeper 再停 HBase 的话,基本停不下来

四. 常见问题与参考资料

4.1 常见问题

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

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

2. 如果Zookeeper宕机会怎样?

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

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

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

4.2 参考资料

启动 CDH 服务:http://www.cloudera.com/content/cloudera/zh-CN/documentation/core/v5-3-x/topics/cdh_ig_cdh_services_start.html#

关闭 CDH 服务:http://www.cloudera.com/content/cloudera/zh-CN/documentation/core/v5-3-x/topics/cdh_ig_services_stop.html

HA 模式下的 Hadoop+ZooKeeper+HBase 启动关闭管理脚本:/article/8659913.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: