HBase源码阅读-1-脚本

1.脚本    start-hbase.sh,hbase-daemon.sh,hbase-daemons.sh,zookeepers.sh,regionservers.sh,hbase,hbase-config.sh
1.1 hbase    hbase命令行入口,最终控制master,regionserver,zookeeper等启动或关闭
1.1.1 hbase shell
执行jruby脚本org.jruby.Main ${HBASE_HOME}/bin/hirb.rb,是hbase命令行接口

1.1.2 hbase master
执行类org.apache.hadoop.hbase.master.HMaster,启动或关闭HMaster

1.1.3 hbase regionserver
执行类org.apache.hadoop.hbase.regionserver.HRegionServer,启动或关闭RegionServer

1.1.4 hbase thrift
执行org.apache.hadoop.hbase.thrift.ThriftServer,启动或关闭thrift服务
注:Thrift是facebook发起的轻量级跨语言的服务框架,现在在apache基金会下。
支持很多语言。Thrift有一个与具体编程语言无关IDL 语言,用来描述服务接口,以及数据交换的格式,存储在.thrift文件中。
然后使用自带的编译器将thrift文件编译成cpp、python等语言的框架代码。

1.1.5 hbase avro
org.apache.hadoop.hbase.avro.AvroServer
Avro 是一个数据序列化系统。
Avro 提供了:
    * 丰富的数据结构。
    * 一个简约的、快速的、二进制数据格式。
    * 一个容器文件,用于存储持久数据。
    * 远程过程调用(RPC)。
    * 和其他动态语言的简单集成。存取数据文件或者使用 RPC 协议的时候不需要生成代码。代码生成只是作为静态类型语言的一个可选的优化项。

1.1.6 migrate
执行org.apache.hadoop.hbase.util.Migrate,貌似系统迁移的功能

1.1.7 zookeeper
执行org.apache.hadoop.hbase.zookeeper.HQuorumPeer,启动或关闭zookeeper服务

1.2 start-hbase.sh 启动hbase。先调用hbase-daemons.sh启动zookeeper,再调用hbase-daemon.sh启动master,最后调用hbase-daemons.sh启动regionserver

1.3 hbase-daemons.sh
执行regionservers.sh,从${HBASE_CONF_DIR}/regionservers读取regionserver列表,
ssh到每台host上调用其hbase-daemon.sh脚本,在后台启动regionserver;

执行zookeepers.sh,调用org.apache.hadoop.hbase.zookeeper.ZKServerTool从classpath下读取zoo.cfg中的server列表
sh到每台host上调用其hbase-daemon.sh脚本,在后台启动zookeeper;

1.4 hbase-daemon.sh
包装hbase master,regionserver,zookeeper等服务从后台启动

说了半天,其实核心的还是hbase脚本,所有功能最终都是调用的这个脚本

猜你喜欢

转载自run-xiao.iteye.com/blog/753953