HBASE所有功能模块的启动都是通过start-hbase.sh调起的,所以源码学习之路就从start-hbase.sh开始。
start-hbase.sh主要和如下几个启动文件相关:hbase,hbase-daemon.sh,hbase-daemons.sh,zookeepers.sh,regionservers.sh,hbase-config.sh。相关的shell源码分析可以看博客:http://blog.csdn.net/wangdi_ao/article/category/1165542
我关注start-hbase.sh的首要目的主要是了解每个功能块是调用hbase源码的那个文件来启动服务的,这点东东其实全包在hbase文件里,可以看看如上那些shell文件,最终执行都是调用hbase来启动。这里就把hbase里提供的调用入口整理一下,以便看hbase的源码。
hbase文件提供的command包括:
command | 说明 | 对应的JAVA文件 |
shell | 运行hbase shell | org.jruby.Main -X+O ${JRUBY_OPTS} ${HBASE_HOME}/bin/hirb.rb |
hbck | 运行hbase fsck | org.apache.hadoop.hbase.util.HBaseFsck |
hlog | WAL分析器 | org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter |
hfile | 存储文件分析器 | org.apache.hadoop.hbase.io.hfile.HFile |
zkcli | 运行ZooKeeper shell | SERVER_ARG=`"$bin"/hbase org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServerArg` org.apache.zookeeper.ZooKeeperMain ${SERVER_ARG} |
master | 启动hbase的HMaster节点 | org.apache.hadoop.hbase.master.HMaster |
regionserver | 启动hbase的HRegionServer节点 | org.apache.hadoop.hbase.regionserver.HRegionServer |
zookeeper | 启动ZooKeeper服务器 | org.apache.hadoop.hbase.zookeeper.HQuorumPeer |
rest | 启动一个hbase REST服务器 | org.apache.hadoop.hbase.rest.Main |
thrift | 启动hbase Thrift服务器 | org.apache.hadoop.hbase.thrift.ThriftServer |
thrift2 | 启动hbase Thrift2服务器 | org.apache.hadoop.hbase.thrift2.ThriftServer |
avro | 启动hbase Avro服务器 | org.apache.hadoop.hbase.avro.AvroServer |
参考资料: