HA 模式 Hadoop+ZooKeeper+Hbase启动顺序
一. 背景(原http://blog.csdn.net/u011414200/article/details/50437356 ,对其进行了一定更改)
1.1 网络上的大部分教程
都是机器间含有SSH联通来启动的。生产环境一般都是不配置SSH机器之间互通的。
1.2 主机规划
| IP | 主机名 | 用户名 | 部署模块 | 进程 |
|---|---|---|---|---|
| 10.6.3.43 | master5 | hadoop5 | NameNode ResourceManager HBase |
NameNode DFSZKFailoverController ResourceManager HMaster JobHistoryServer |
| 10.6.3.33 | master52 | hadoop5 | NameNode ResourceManager HBase |
NameNode DFSZKFailoverController ResourceManager HMaster JobHistoryServer |
| 10.6.3.48 | slave51 | hadoop5 | DataNode NodeManager Zookeeper HBase |
DataNode NodeManager HRegionServer JournalNode QuorumPeerMain |
| 10.6.3.32 | slave52 | hadoop5 | DataNode NodeManager Zookeeper HBase |
DataNode NodeManager HRegionServer JournalNode QuorumPeerMain |
| 10.6.3.36 | slave53 | hadoop5 | DataNode 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
- 1
2. 格式化 ZooKeeper 集群
在任意的 namenode 上都可以执行,笔者还是选择了 master5 主机执行格式化命令
hdfs zkfc -formatZK
- 1
3. 启动 JournalNode 集群
分别在 slave51、slave52、slave53 上执行以下命令
hadoop-daemon.sh start journalnode
- 1
4. 格式化集群的 NameNode
在 master5 的主机上执行以下命令,以格式化 namenode:
hdfs namenode -format
- 1
5. 启动刚格式化的 NameNode
刚在 master5 上格式化了 namenode ,故就在 master5 上执行
hadoop-daemon.sh start namenode
- 1
6. 同步 NameNode1 元数据到 NameNode2 上
复制你 NameNode 上的元数据目录到另一个 NameNode,也就是此处的 master5 复制元数据到 master52 上。在 master52 上执行以下命令:
hdfs namenode -bootstrapStandby
- 1
7. 启动 NameNode2
master52 主机拷贝了元数据之后,就接着启动 namenode 进程了,执行
hadoop-daemon.sh start namenode
- 1
8. 启动集群中所有的DataNode
在所有datanode节点上执行
hadoop-daemon.sh start datanode
- 1
9. 在 RM1 启动 YARN
在 master5 的主机上执行以下命令:
yarn-daemon.sh start resourcemanager
- 1
10. 在 RM2 单独启动 YARN
虽然上一步启动了 YARN ,但是在 master52 上是没有相应的 ResourceManager 进程,故需要在 master52 主机上单独启动:
yarn-daemon.sh start resourcemanager
- 1
11. 启动 ZKFC
在 master5 和 master52 的主机上分别执行如下命令:
hadoop-daemon.sh start zkfc
- 1
12. 开启历史日志服务
在 master5 和 master52 的主机上执行
mr-jobhistory-daemon.sh start historyserver
- 1
13. 启动主 HMaster
在其中一台主机上启动 Hmaster,即笔者在 master5 上
hbase-daemon.sh start master
- 1
14. 启动备份 HMaster
另一台 Hmaster 的主机上,即笔者在 master52 上,执行以下命令
hbase-daemon.sh start master
- 1
三. 开启与关闭集群顺序
3.1 Hadoop 生态系统集群的启动顺序概览
以下中标注红色加粗的即为笔者集群目前已经安装的。
| 顺序 | 服务 | 备注 | 有关说明和更多信息 |
|---|---|---|---|
| 1 | ZooKeeper | 建议在启动 HDFS 之前先启动 ZooKeeper;这是高可用性 (HA) 部署中的要求。在任何情况下,始终在 HBase 之前先启动 ZooKeeper | 在单个服务器上安装 ZooKeeper Server 包并启动 ZooKeeper;在生产环境中安装 ZooKeeper;部署 HDFS High Availability;为 ResourceManager (YARN) 配置 高可用性 |
| 2 | HDFS | 除 ZooKeeper 以外,在所有其它服务之前先启动 HDFS。如果您正在使用 HA,请参阅高可用性指南中的说明 | 在集群中部署 HDFS; HDFS 高可用性 |
| 3 | HttpFS | HttpFS 安装 | |
| 4a | MRv1 | 在 Hive 或 Oozie 之前先启动 MapReduce。如果 YARN 正在运行,请勿启动 MRv1 | 在集群中部署 MapReduce v1 (MRv1);为 JobTracker (MRv1) 配置 高可用性 |
| 4b | YARN | 在 Hive 或 Oozie 之前启动 YARN。如果 MRv1 正在运行,请勿启动 YARN | 在集群中部署 MapReduce v2 (YARN) |
| 5 | HBase | 启动 HBase Master;在分布式集群中部署 HBase | |
| 6 | Hive | 在启动 HiveServer2 和 Hive console 之前先启动 Hive Metastore | 安装 Hive |
| 7 | Oozie | 启动 Oozie Server | |
| 8 | Flume 1.x | 运行 Flume | |
| 9 | Sqoop | Sqoop 安装和 Sqoop 2 安装 | |
| 10 | Hue | Hue 安装 |
3.2 非首次启动集群
| 顺序 | 步骤 | 操作主机 | 命令 | 开启的相应进程 |
|---|---|---|---|---|
| 1 | 启动 ZooKeeper 集群 | slave51、slave52、slave53 | zkServer.sh start |
QuorumPeerMain |
| 2 | 启动 JournalNode 集群 | slave51、slave52、slave53 | hadoop-daemon.sh start journalnode |
JournalNode |
| 3 | 启动刚格式化的 NameNode | master5 | hadoop-daemon.sh start namenode |
NameNode |
| 4 | 同步 NameNode1 元数据到 NameNode2 上 | master52 | hdfs namenode -bootstrapStandby |
|
| 5 | 启动 NameNode2 | master52 | hadoop-daemon.sh start namenode |
NameNode |
| 6 | 启动集群中所有的DataNode | 1) master5 2) slave51、slave52、slave53 (二者选一即可,下同) |
1) hadoop-daemons.sh start datanode2) hadoop-daemon.sh start datanode |
DataNode |
| 7 | 在 RM1 启动 YARN | master5 | start-yarn.sh |
ResourceManager(master5) NodeManager(slave节点) |
| 8 | 在 RM2 单独启动 YARN | master52 | yarn-daemon.sh start resourcemanager |
ResourceManager |
| 9 | 启动 ZKFC | master5 与 master52 | hadoop-daemon.sh start zkfc |
DFSZKFailoverController |
| 10 | 开启历史日志服务 | master5 | mr-jobhistory-daemon.sh start historyserver |
JobHistoryServer |
| 11 | 启动主 HMaster 和 HRegionServer | master5 | start-hbase.sh |
HMaster (master5上) HRegionServer (slave节点上) |
| 12 | 启动备份 HMaster | master52 | hbase-daemon.sh start master |
HMaster |
Note:与 “首次启动格式化集群” 不同的是没有 格式化 ZooKeeper 集群 和 格式化集群的 NameNode 这两个步骤!
3.3 Hadoop 生态系统集群的关闭顺序概览
以下中标注红色加粗的即为笔者集群目前已经安装的。
| 关闭顺序 | 服务 | 备注 | 有关说明和更多信息 |
|---|---|---|---|
| 1 | Hue | 在 Hue Server 机器上运行以下内容以停止 Hue:sudo service hue stop |
|
| 2a | Sqoop 1 | 在运行其的所有节点上运行以下内容:sudo service sqoop-metastore stop |
|
| 2b | Sqoop 2 | 在运行其的所有节点上运行以下内容:sudo /sbin/service sqoop2-server stop |
|
| 3 | Flume 0.9 | 在运行 Flume Node 进程的每个节点上将其停止:sudo service flume-node stop 停止 Flume Master: sudo service flume-master stop |
|
| 4 | Flume 1.x | 没有 Flume Master | 在运行 Flume Node 进程的每个节点上将其停止:sudo service flume-ng-agent stop |
| 5 | Oozie | sudo service oozie stop |
|
| 6 | Hive | 要停止 Hive,请退出 Hive 控制台,并确保没有 Hive 脚本运行,关闭 HiveServer2:sudo service hiveserver2 stop 关闭每个客户端上的 Hive Metastore Daemon: sudo service hive-metastore stop如果 Metastore 从命令行运行,使用 Ctrl-c 将其关闭 |
|
| 7 | HBase | 停止 Thrift Server 和客户端,然后关闭集群 | 要停止 Thrift Server 和客户端:sudo service hbase-thrift stop 要关闭集群,请在主节点上使用此命令: hbase-daemon.sh stop master 在托管 Region Server 的每个节点上使用以下命令: hbase-daemon.sh stop regionserver |
| 8a | MapReduce 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 |
| 8b | YARN | 停止 YARN 之前先停止 Hive 和 Oozie | 要停止 YARN,请在运行 MapReduce JobHistory 服务、ResourceManager 服务和 NodeManager 的所有节点上停止这些服务。使用以下命令:hadoop-daemon.sh stop historyserveryarn-daemon.sh stop resourcemanageryarn-daemon.sh stop nodemanager |
| 9 | HttpFS | sudo service hadoop-httpfs stop |
|
| 10 | HDFS | 要停止 HDFS:在 NameNode 上:hadoop-daemon.sh stop namenode 在 Secondary NameNode 上(如果使用): hadoop-daemon.sh stop secondnamenode 在每个 DataNode 上: hadoop-daemon.sh stop datanode |
|
| 11 | ZooKeeper | 在停止 ZooKeeper 之前先停止 HBase 和 HDFS | 要停止 ZooKeeper Server,请在每个 ZooKeeper 节点上使用以下命令:zkServer.sh stop |
3.4 集群关闭
| 顺序 | 步骤 | 操作主机 | 命令 | 关闭的相应进程 |
|---|---|---|---|---|
| 1 | 关闭备份 HMaster | master52 | hbase-daemon.sh stop master |
HMaster |
| 2 | 关闭主 HMaster 和 HRegionServer | master5 | stop-hbase.sh |
HMaster (master5上) HRegionServer (slave节点上) |
| 3 | 关闭历史日志服务 | master5 | mr-jobhistory-daemon.sh stop historyserver |
JobHistoryServer |
| 4 | 关闭 ZKFC | master5 与 master52 | hadoop-daemon.sh stop zkfc |
DFSZKFailoverController |
| 5 | 在 RM2 单独关闭 YARN | master52 | yarn-daemon.sh stop resourcemanager |
ResourceManager |
| 6 | 在 RM1 关闭 YARN | master5 | stopt-yarn.sh |
ResourceManager (master5) NodeManager (slave节点) |
| 7 | 关闭集群中所有的DataNode | 1) master5 2) slave51、slave52、slave53 (二者选一即可,下同) |
1) hadoop-daemons.sh stop datanode2) hadoop-daemon.sh stop datanode |
DataNode |
| 8 | 关闭 NameNode2 | master52 | hadoop-daemon.sh stop namenode |
NameNode |
| 9 | 关闭剩下的 NameNode | master5 | 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 |
注意:一定要按顺序停止。之间的依赖关系很重要、
HA 模式 Hadoop+ZooKeeper+Hbase启动顺序的更多相关文章
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...
- hadoop+zookeeper+hbase分布式安装
前期服务器配置 修改/etc/hosts文件,添加以下信息(如果正常IP) 119.23.163.113 master 120.79.116.198 slave1 120.79.116.23 slav ...
- Hadoop zookeeper hbase spark phoenix (HA)搭建过程
环境介绍: 系统:centos7 软件包: apache-phoenix-4.14.0-HBase-1.4-bin.tar.gz 下载链接:http://mirror.bit.edu.cn/apac ...
- CentOS7.4伪分布式搭建 hadoop+zookeeper+hbase+opentsdb
前言 由于hadoop和hbase都得想zookeeper注册,所以启动顺序为 zookeeper——>hadoop——>hbase,关闭顺序反之 一.前期准备 1.配置ip 进入文件编辑 ...
- hadoop +zookeeper + hbase 单节点安装
项目描述: 今天花了680元买了阿里云的一台内存1G, 带宽1M 的云主机. 想以后方便测试用,而且想把自己的博客签到自己的主机上.所以自己就搭了一个测试的环境. 可以用来进行基本的hbase 入库, ...
- hadoop+zookeeper+hbase伪分布式安装
基本安装步骤 安装包下载 从大数据组件下载地址下载以下组件安装包 hadoop-2.6.0-cdh5.6.0.tar.gz hbase-1.0.0-cdh5.6.0.tar.gz zookeeper- ...
- hadoop生态圈安装详解(hadoop+zookeeper+hbase+pig+hive)
-------------------------------------------------------------------* 目录 * I hadoop分布式安装 * II zoo ...
- hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置
配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume 文章目录 环境介绍 节点介绍 ...
- Hadoop学习---Zookeeper+Hbase配置学习
软件版本号: JDK:jdk-8u45-linux-i586.tar.gz Zookeeper:zookeeper-3.4.6 Hbase:hbase-1.0.0-bin 一.JDK版本更换 由于之前 ...
随机推荐
- linux下mysql数据导入到redis
自Redis 2.6以上版本起,Redis支持快速大批量导入数据,即Pipe传输.通过将要导入的命令转换为Resp格式,然后通过MySQL的concat()来整理出最终导入的命令集合,以达到快速导入的 ...
- Spring mvc 参数半丁
http://blog.csdn.net/eson_15/article/details/51718633 众所周知,springmvc是用来处理页面的一些请求,然后将数据再通过视图返回给用户的,前面 ...
- request.getScheme() 使用方法(转)
今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...
- 旋转动画(RotateTransform)
Silverlight的基础动画包括偏移.旋转.缩放.倾斜和翻转动画,这些基础动画毫无疑问是在Silverlight中使用得最多的动画效果,其使用也是非常简单的.相信看过上一篇<偏移动画(Tra ...
- ADO.NET连接数据库增删查改创建公用类
顺序如下:再web.config中添加数据库的用户名和密码 创建公用类. //添加进web.config中的账号和密码 /*<connectionStrings> <add name ...
- 【atcoder】Enclosed Points [abc136F]
题目传送门:https://atcoder.jp/contests/abc136/tasks/abc136_f 题目大意:在平面上有$n$个点我们,定义一个点集的权值为平面上包含这个点集的最小矩形所包 ...
- linux安装vsftpd后无法登陆
安装完成后在主机上登陆时,不管是输入用户,还是匿名都无法登陆 经过检查,发现是因为/etc/hosts.deny禁止了所有ip访问 将hosts.deny中的all:all删除,或者在/etc/hos ...
- Django阶段总结与Ajax
一.路由控制 二.视图层 三.模板层 四.模型层.单表操作.多表操作 五.什么是ajax 一.路由控制 补充点(什么是web应用?) 网站:BS架构应用程序:B是浏览器 S:server(实现了ws ...
- udp单播,广播,多播实现(ReceiveFromAsync,SendToAsync)
注意:客户端和服务器实现基本一致,本地host和port和多播的host和port可以一样 (1)多播 1.将本地host加入多播组中,只有加入多播组的成员才能接受同组的节点发送的多播 Multica ...
- Solving Docker permission denied while trying to connect to the Docker daemon socket
The error message tells you that your current user can’t access the docker engine, because you’re la ...