- Author
Funky Gao <funky.gao@gmail.com>
- Description
Let's study hbase from it's source code from scratch!
TOC
Test code excluded:
- 452 java files
- 146,616 java LOC
Enable log debug level and check out the log file and find the main routines.
conf/log4j.properties
Setup the following environ variables for other scripts:
- JAVA_HOME
- HBASE_HOME
- HBASE_CONF_DIR
- HBASE_REGIONSERVERS
- HBASE_BACKUP_MASTERS
- source ${HBASE_CONF_DIR}/hbase-env.sh
Invoker for other scripts!
Run a dedicated class. e,g:
bin/hbase org.apache.hadoop.hbase.zookeeper.ZooKeeperMainServerArg
Setup classpath and map command to class name and invoke class method:
shell
org.jruby.Main ${HBASE_HOME}/bin/hirb.rb
master
org.apache.hadoop.hbase.master.HMaster
regionserver
org.apache.hadoop.hbase.regionserver.HRegionServer
thrift
org.apache.hadoop.hbase.thrift.ThriftServer
rest
org.apache.hadoop.hbase.rest.Main
avro
org.apache.hadoop.hbase.avro.AvroServer
migrate
org.apache.hadoop.hbase.util.Migrate
hbck
org.apache.hadoop.hbase.util.HBaseFsck
zookeeper
org.apache.hadoop.hbase.zookeeper.HQuorumPeer
zkcli
org.apache.zookeeper.ZooKeeperMain
org.apache.hadoop.hbase
|
|- client
| |
| |- HConnection
| |- Get
| |- Put
| |- Delete
| |- Scan
| |- Increment
| |- Row
| |- RowLock
| |- HTable
| └─ HConnection
|
|- filter
|
|- io
| |
| |- hfile
| | |
| | |- HFile
| | └─ BlockCache
| |
| └─ HeapSize
|
|- ipc
|
|- mapreduce(通过mapreduce实现运维工具)
|
|- master
| |
| |- HMaster
| └─ LoadBalancer
|
|- regionserver
| |
| |- HRegion
| |- HRegionServer
| |- MemStore
| |- Store
| └─ StoreFile
|
|- util
|
└─ zookeeper
|
|- ClusterStatusTracker
|- MetaNodeTracker
└─ RegionServerTracker
org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer
org.apache.hadoop.hbase.regionserver.HRegion
org.apache.hadoop.hbase.client.HTable
org.apache.hadoop.hbase.HBaseConfiguration
It will read hbase-default.xml then hbase-site.xml using the current Java classpath.
- master log
- region server log
- zookeeper log