HBase的启动流程

HBase

HBase的启动流程

[TOC]

启动HBase会执行start-hbase.sh,然后脚本会先执行hbase-config.sh,做一系列的配置设置,包括常用路径、regionservers和backup-masters列表、常用端口等。在hbase-config.sh中会执行hbase-env.sh,主要对JAVA的环境参数、ssh,、pid路径等进行配置。start-hbase.sh最后会根据hbase.cluster.distributed来确定启动模式,分为本地和分布式。
分布式启动HBase,使用hbase-daemons.sh逐步启动zookeeper、master、regionserver、master-backup。具体会调用相关的脚本(如zookeeper会调用zookeerper.sh)来进行环境的配置和登录到相关的机器节点上执行hbase-daemon.sh。
hbase-daemon.sh的职责就是启动各个进程,在启动过程中会先做进程判断,日志滚动等准备,最后执行启动命名,逐步的启动各个节点上的进程。在启动过程中,会在屏幕中打印启动信息。
执行流程图:

HBase的启动流程

1、执行start-hbase.sh

  • 启动HBase会执行start-hbase.sh,然后脚本会先执行hbase-config.sh,做一系列的配置设置

2、运行 hbase-config.sh

hbase-config.sh的作用
  • 装载相关配置,如HBASE_HOME目录,conf目录,regionserver机器列表,JAVA_HOME 目录等,它会调用$HBASE_HOME/conf/hbase-env.sh .
  • 解析参数(0.96 版本及以后才可以带唯一参数 autorestart,作用就是重启)
  • 调用 hbase-daemon.sh 来启动 master.
  • 调用 hbase-daemons.sh 来启动 regionserver zookeeper master-backup.

2.1、调用hbase-env.sh

hbase-env.sh 的作用
  • 主要是配置 JVM 及其 GC 参数,还可以配置 log 目录及参数,配置是否需要 hbase 管理 ZK,配置进程 id 目录等.

2.2、调用hbase-daemon.sh

hbase-daemons.sh 的作用

根据需要启动的进程,

  • 如 zookeeper,则调用 zookeepers.sh

  • 如 regionserver,则调用 regionservers.sh

  • 如 master-backup,则调用 master-backup.sh

总结如下

hbase-daemon.sh的职责就是启动各个进程,在启动过程中会先做进程判断,日志滚动等准备,最后执行启动命名,逐步的启动各个节点上的进程。在启动过程中,会在屏幕中打印启动信息。

zookeepers.sh 的作用
  • 如果 hbase-env.sh 中的 HBASE_MANAGES_ZK”=”true”,那么通过ZKServerTool这个类解析xml配置文件,获取 ZK 节点列表,然后通过 SSH 向这些节点发送远程命令执行。
regionservers.sh 的作用
  • 与 zookeepers.sh 类似,通过配置文件,获取 regionserver 机器列表,然后 SSH 向这些机器发送远程命令:
master-backup.sh 的作用
  • 通过 backup-masters 这个配置文件,获取 backup-masters 机器列表,然后 SSH 向这些机器发送远程命令。