HBase源码阅读-1-脚本

1.脚本    start-hbase.sh,hbase-daemon.sh,hbase-daemons.sh,zookeepers.sh,regionservers.sh,hbase,hbase-config.sh

1.1hbasehbase命令行入口,最终控制master,regionserver,zookeeper等启动或关闭

1.1.1hbaseshell

执行jruby脚本org.jruby.Main${HBASE_HOME}/bin/hirb.rb,是hbase命令行接口

1.1.2hbasemaster

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

1.1.3hbaseregionserver

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

1.1.4hbasethrift

执行org.apache.hadoop.hbase.thrift.ThriftServer,启动或关闭thrift服务

注:Thrift是facebook发起的轻量级跨语言的服务框架,现在在apache基金会下。

支持很多语言。Thrift有一个与具体编程语言无关IDL语言,用来描述服务接口,以及数据交换的格式,存储在.thrift文件中。

然后使用自带的编译器将thrift文件编译成cpp、python等语言的框架代码。

1.1.5hbaseavro

org.apache.hadoop.hbase.avro.AvroServer

Avro是一个数据序列化系统。

Avro提供了:

*丰富的数据结构。

*一个简约的、快速的、二进制数据格式。

*一个容器文件,用于存储持久数据。

*远程过程调用(RPC)。

*和其他动态语言的简单集成。存取数据文件或者使用RPC协议的时候不需要生成代码。代码生成只是作为静态类型语言的一个可选的优化项。

1.1.6migrate

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

1.1.7zookeeper

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

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

1.3hbase-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.4hbase-daemon.sh

包装hbasemaster,regionserver,zookeeper等服务从后台启动

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

相关推荐