HBase源码分析3—HMaster启动过程
Main Entry
首先找一下启动的入口。从HBase的启动脚本中可以找到类似
1 2 |
if [ "$COMMAND" = "master" ] ; then CLASS='org.apache.hadoop.hbase.master.HMaster' |
从这里确定了入口的包 org.apache.hadoop.hbase.master ,在 HMaster 类中有 main 方法
1 2 3 4 |
public static void main(String[] args) { VersionInfo.logVersion(); new HMasterCommandLine(HMaster.class).doMain(args); } |
HMasterCommandLine 继承自 ServerCommandLine ,doMain()执行的是基类的方法,借助 ToolRunner 执行了 HMasterCommandLine.run() 。
1 2 3 4 5 6 7 8 9 10 11 |
public void doMain(String args[]) { try { int ret = ToolRunner.run(HBaseConfiguration.create(), this, args); if (ret != 0) { System.exit(ret); } } catch (Exception e) { LOG.error("Failed to run", e); System.exit(-1); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public |