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脚本,所有功能最终都是调用的这个脚本
HBase源码阅读-1-脚本
猜你喜欢
转载自run-xiao.iteye.com/blog/753953
今日推荐
周排行