HBase 启动

HBase 启动

启动命令

1
2
$HBASE_HOME/bin/hbase-daemon.sh start master
$HBASE_HOME/bin/hbase-daemon.sh start regionserver

Master

HBase master 源码主要位于hbase-server/org.apache.hadoop.hbase.master路径下,入口类为HMaster, 继承了HRegionServer类,实现MasterServices接口。

1
2
public class HRegionServer extends HasThread implements
    RegionServerServices, LastSequenceId, ConfigurationObserver

Regionserver

HBase regionserver 源码主要位于hbase-server/org.apache.hadoop.hbase.regionserver路径下,入口类为HRegionServer, 继承了HasThread类,实现RegionServices,LastSequenceId, ConfigurationObserver接口。

1
2
public class HRegionServer extends HasThread implements
    RegionServerServices, LastSequenceId, ConfigurationObserver

启动

  1. $HBASE_HOME/bin/hbase-daemon.sh start master 会调用$HBASE_HOME/bin/hbase启动org.apache.hadoop.hbase.master.HMaster

  2. HMaster入口函数在HMaster.main()

  3. HMaster.main()通过HmasterCommandLine.run()执行HmasterCommandLine.startMaster(),startMaster()通过Hmaster.constructMaster()创建master实例;master实例通过startActiveMasterManager()设置守护线程来阻塞执行成为试图成为活动Master,成功后,执行finishActiveMasterInitialization();

  4. Hmaster.finishActiveMasterInitialization()完成如下操作:

    1. 启动监控线程InitializationMonitor;

    2. 加载meta 表;

    3. 设置zk中clusterID;

    4. 创建serverManager;

    5. 创建clusterConnection;

    6. 初始化zk结构;

    7. 初始化MasterCoprocessor;

    8. 启动服务线程;

    9. serverManager等待rs注册;

参考

  1. http://09itblog.site/?p=72

  2. hbase源码系列(六)HMaster启动过程 - 云+社区 - 腾讯云

  3. HBase源码分析3—HMaster启动过程 - Yiz96

  4. (二)HBase集群启动流程分析 - 简书

  5. https://blog.csdn.net/yueyedeai/article/details/16927795

updatedupdated2024-05-152024-05-15