[ 轉載 ] HBASE啟動指令碼/Shell解析
常用到的HBase啟動指令碼有:
1.$HBASE_HOME/bin/start-hbase.sh
啟動整個叢集
2.$HBASE_HOME/bin/stop-hbase.sh
停止整個叢集
3.$HBASE_HOME/bin/hbase-daemons.sh
啟動或停止,所有的regionserver或zookeeper或backup-master
4.$HBASE_HOME/bin/hbase-daemon.sh
啟動或停止,單個master或regionserver或zookeeper
以start-hbase.sh為起點,可以看看指令碼間的一些呼叫關係
start-hbase.sh的流程如下:
1.執行hbase-config.sh(作用後面解釋)
2.解析引數(0.96版本及以後才可以帶唯一引數autorestart,作用就是重啟)
3.呼叫hbase-daemon.sh來啟動master;呼叫hbase-daemons.sh來啟動regionserver zookeeper master-backup
hbase-config.sh的作用:
裝載相關配置,如HBASE_HOME目錄,conf目錄,regionserver機器列表,JAVA_HOME目錄等,它會呼叫$HBASE_HOME/conf/hbase-env.sh
hbase-env.sh的作用:
主要是配置JVM及其GC引數,還可以配置log目錄及引數,配置是否需要hbase管理ZK,配置程式id目錄等
hbase-daemons.sh的作用:
根據需要啟動的程式,
如為zookeeper,則呼叫zookeepers.sh
如為regionserver,則呼叫regionservers.sh
如為master-backup,則呼叫master-backup.sh
zookeepers.sh的作用:
如果hbase-env.sh中的HBASE_MANAGES_ZK" = "true",那麼通過ZKServerTool這個類解析xml配置檔案,獲取ZK節點列表(即hbase.zookeeper.quorum的配置值),然後通過SSH向這些節點傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop zookeeper
regionservers.sh的作用:
與zookeepers.sh類似,通過${HBASE_CONF_DIR}/regionservers配置檔案,獲取regionserver機器列表,然後SSH向這些機器傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop regionserver
master-backup.sh的作用:
通過${HBASE_CONF_DIR}/backup-masters這個配置檔案,獲取backup-masters機器列表(預設配置中,這個配置檔案並不存在,所以不會啟動backup-master),然後SSH向這些機器傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop master --backup
hbase-daemon.sh的作用:
無論是zookeepers.sh還是regionservers.sh或是master-backup.sh,最終都會呼叫本地的hbase-daemon.sh,其執行過程如下:
1.執行hbase-config.sh,裝載各種配置(java環境、log配置、程式ID目錄等)
2.如果是start命令?
滾動out輸出檔案,滾動gc日誌檔案,日誌檔案中輸出啟動時間+ulimit -a資訊,如
“Mon Nov 26 10:31:42 CST 2012 Starting master on dwxx.yy.taobao”
"..open files (-n) 65536.."
3.呼叫$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
4.執行wait,等待3中開啟的程式結束
5.執行cleanZNode,將regionserver在zk上登記的節點刪除,這樣做的目的是:在regionserver程式意外退出的情況下,可以免去3分鐘的ZK心跳超時等待,直接由master進行當機恢復
6.如果是stop命令?
根據程式ID,檢查程式是否存在;呼叫kill命令,然後等待到程式不存在為止
7.如果是restart命令?
呼叫stop後,再呼叫start。。。
$HBASE_HOME/bin/hbase的作用:
最終啟動的實現由這個指令碼執行
1.可以通過敲入$HBASE_HOME/bin/hbase檢視其usage
DBA TOOLS
shell run the HBase shell
hbck run the hbase 'fsck' tool
hlog write-ahead-log analyzer
hfile store file analyzer
zkcli run the ZooKeeper shell
PROCESS MANAGEMENT
master run an HBase HMaster node
regionserver run an HBase HRegionServer node
zookeeper run a Zookeeper server
rest run an HBase REST server
thrift run the HBase Thrift server
thrift2 run the HBase Thrift2 server
avro run an HBase Avro server
PACKAGE MANAGEMENT
classpath dump hbase CLASSPATH
version print the version
or
CLASSNAME run the class named CLASSNAME
2.bin/hbase shell,這個就是常用的shell工具,運維常用的DDL和DML都會通過此進行,其具體實現(對hbase的呼叫)是用ruby寫的
3.bin/hbase hbck, 運維常用工具,檢查叢集的資料一致性狀態,其執行是直接呼叫
org.apache.hadoop.hbase.util.HBaseFsck中的main函式
4.bin/hbase hlog, log分析工具,其執行是直接呼叫
org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter中的main函式
5.bin/hbase hfile, hfile分析工具,其執行是直接呼叫
org.apache.hadoop.hbase.io.hfile.HFile中的main函式
6.bin/hbase zkcli,檢視/管理ZK的shell工具,很實用,經常用,比如你可以通過(get /hbase-tianwu-94/master)其得知當前的active master,可以通過(get /hbase-tianwu-94/root-region-server)得知當前root region所在的server,你也可以在測試中通過(delete /hbase-tianwu-94/rs/dwxx.yy.taobao),模擬regionserver與ZK斷開連線,,,
其執行則是呼叫了org.apache.zookeeper.ZooKeeperMain的main函式
7.迴歸到剛才hbase-daemon.sh對此指令碼的呼叫為:
$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
其執行則直接呼叫
org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer
org.apache.hadoop.hbase.zookeeper.HQuorumPeer
的main函式,而這些main函式就是了new一個了Runnable的HMaster/HRegionServer/QuorumPeer,在不停的Running...
8.bin/hbase classpath 列印classpath
9.bin/hbase version 列印hbase版本資訊
10.bin/hbase CLASSNAME, 這個很實用,所有實現了main函式的類都可以通過這個指令碼來執行,比如前面的hlog hfile hbck工具,實質是對這個介面的一個快捷呼叫,而其他未提供快捷方式的class我們也可以用這個介面呼叫,如Region merge 呼叫:
$HBASE_HOME/bin/hbase/org.apache.hadoop.hbase.util.Merge
指令碼使用小結:
1.開啟叢集,start-hbase.sh
2.關閉叢集,stop-hbase.sh
3.開啟/關閉所有的regionserver、zookeeper,hbase-daemons.sh start/stop regionserver/zookeeper
4.開啟/關閉單個regionserver、zookeeper,hbase-daemon.sh start/stop regionserver/zookeeper
5.開啟/關閉master hbase-daemon.sh start/stop master, 是否成為active master取決於當前是否有active master
兩個進階指令碼
6.rolling-restart.sh 可以用來挨個滾動重啟
7.graceful_stop.sh move伺服器上的所有region後,再stop/restart該伺服器,可以用來進行版本的熱升級
幾個細節:
1。 hbase-daemon.sh start master 與 hbase-daemon.sh start master --backup,這2個命令的作用一樣的,是否成為backup或active是由master的內部邏輯來控制的
2。stop-hbase.sh 不會呼叫hbase-daemons.sh stop regionserver 來關閉regionserver, 但是會呼叫hbase-daemons.sh stop zookeeper/master-backup來關閉zk和backup master,關閉regionserver實際呼叫的是hbaseAdmin的shutdown介面
3。通過$HBASE_HOME/bin/hbase stop master關閉的是整個叢集而非單個master,只關閉單個master的話使用$HBASE_HOME/bin/hbase-daemon.sh stop master
4。$HBASE_HOME/bin/hbase stop regionserver/zookeeper 不能這麼調,調了也會出錯,也沒有路徑會呼叫這個命令,但是可以通過$HBASE_HOME/bin/hbase start regionserver/zookeeper 來啟動rs或者zk,hbase-daemon.sh呼叫的就是這個命令
1.$HBASE_HOME/bin/start-hbase.sh
啟動整個叢集
2.$HBASE_HOME/bin/stop-hbase.sh
停止整個叢集
3.$HBASE_HOME/bin/hbase-daemons.sh
啟動或停止,所有的regionserver或zookeeper或backup-master
4.$HBASE_HOME/bin/hbase-daemon.sh
啟動或停止,單個master或regionserver或zookeeper
以start-hbase.sh為起點,可以看看指令碼間的一些呼叫關係
start-hbase.sh的流程如下:
1.執行hbase-config.sh(作用後面解釋)
2.解析引數(0.96版本及以後才可以帶唯一引數autorestart,作用就是重啟)
3.呼叫hbase-daemon.sh來啟動master;呼叫hbase-daemons.sh來啟動regionserver zookeeper master-backup
hbase-config.sh的作用:
裝載相關配置,如HBASE_HOME目錄,conf目錄,regionserver機器列表,JAVA_HOME目錄等,它會呼叫$HBASE_HOME/conf/hbase-env.sh
hbase-env.sh的作用:
主要是配置JVM及其GC引數,還可以配置log目錄及引數,配置是否需要hbase管理ZK,配置程式id目錄等
hbase-daemons.sh的作用:
根據需要啟動的程式,
如為zookeeper,則呼叫zookeepers.sh
如為regionserver,則呼叫regionservers.sh
如為master-backup,則呼叫master-backup.sh
zookeepers.sh的作用:
如果hbase-env.sh中的HBASE_MANAGES_ZK" = "true",那麼通過ZKServerTool這個類解析xml配置檔案,獲取ZK節點列表(即hbase.zookeeper.quorum的配置值),然後通過SSH向這些節點傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop zookeeper
regionservers.sh的作用:
與zookeepers.sh類似,通過${HBASE_CONF_DIR}/regionservers配置檔案,獲取regionserver機器列表,然後SSH向這些機器傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop regionserver
master-backup.sh的作用:
通過${HBASE_CONF_DIR}/backup-masters這個配置檔案,獲取backup-masters機器列表(預設配置中,這個配置檔案並不存在,所以不會啟動backup-master),然後SSH向這些機器傳送遠端命令:
cd ${HBASE_HOME};
$bin/hbase-daemon.sh --config ${HBASE_CONF_DIR} start/stop master --backup
hbase-daemon.sh的作用:
無論是zookeepers.sh還是regionservers.sh或是master-backup.sh,最終都會呼叫本地的hbase-daemon.sh,其執行過程如下:
1.執行hbase-config.sh,裝載各種配置(java環境、log配置、程式ID目錄等)
2.如果是start命令?
滾動out輸出檔案,滾動gc日誌檔案,日誌檔案中輸出啟動時間+ulimit -a資訊,如
“Mon Nov 26 10:31:42 CST 2012 Starting master on dwxx.yy.taobao”
"..open files (-n) 65536.."
3.呼叫$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
4.執行wait,等待3中開啟的程式結束
5.執行cleanZNode,將regionserver在zk上登記的節點刪除,這樣做的目的是:在regionserver程式意外退出的情況下,可以免去3分鐘的ZK心跳超時等待,直接由master進行當機恢復
6.如果是stop命令?
根據程式ID,檢查程式是否存在;呼叫kill命令,然後等待到程式不存在為止
7.如果是restart命令?
呼叫stop後,再呼叫start。。。
$HBASE_HOME/bin/hbase的作用:
最終啟動的實現由這個指令碼執行
1.可以通過敲入$HBASE_HOME/bin/hbase檢視其usage
DBA TOOLS
shell run the HBase shell
hbck run the hbase 'fsck' tool
hlog write-ahead-log analyzer
hfile store file analyzer
zkcli run the ZooKeeper shell
PROCESS MANAGEMENT
master run an HBase HMaster node
regionserver run an HBase HRegionServer node
zookeeper run a Zookeeper server
rest run an HBase REST server
thrift run the HBase Thrift server
thrift2 run the HBase Thrift2 server
avro run an HBase Avro server
PACKAGE MANAGEMENT
classpath dump hbase CLASSPATH
version print the version
or
CLASSNAME run the class named CLASSNAME
2.bin/hbase shell,這個就是常用的shell工具,運維常用的DDL和DML都會通過此進行,其具體實現(對hbase的呼叫)是用ruby寫的
3.bin/hbase hbck, 運維常用工具,檢查叢集的資料一致性狀態,其執行是直接呼叫
org.apache.hadoop.hbase.util.HBaseFsck中的main函式
4.bin/hbase hlog, log分析工具,其執行是直接呼叫
org.apache.hadoop.hbase.regionserver.wal.HLogPrettyPrinter中的main函式
5.bin/hbase hfile, hfile分析工具,其執行是直接呼叫
org.apache.hadoop.hbase.io.hfile.HFile中的main函式
6.bin/hbase zkcli,檢視/管理ZK的shell工具,很實用,經常用,比如你可以通過(get /hbase-tianwu-94/master)其得知當前的active master,可以通過(get /hbase-tianwu-94/root-region-server)得知當前root region所在的server,你也可以在測試中通過(delete /hbase-tianwu-94/rs/dwxx.yy.taobao),模擬regionserver與ZK斷開連線,,,
其執行則是呼叫了org.apache.zookeeper.ZooKeeperMain的main函式
7.迴歸到剛才hbase-daemon.sh對此指令碼的呼叫為:
$HBASE_HOME/bin/hbase start master/regionserver/zookeeper
其執行則直接呼叫
org.apache.hadoop.hbase.master.HMaster
org.apache.hadoop.hbase.regionserver.HRegionServer
org.apache.hadoop.hbase.zookeeper.HQuorumPeer
的main函式,而這些main函式就是了new一個了Runnable的HMaster/HRegionServer/QuorumPeer,在不停的Running...
8.bin/hbase classpath 列印classpath
9.bin/hbase version 列印hbase版本資訊
10.bin/hbase CLASSNAME, 這個很實用,所有實現了main函式的類都可以通過這個指令碼來執行,比如前面的hlog hfile hbck工具,實質是對這個介面的一個快捷呼叫,而其他未提供快捷方式的class我們也可以用這個介面呼叫,如Region merge 呼叫:
$HBASE_HOME/bin/hbase/org.apache.hadoop.hbase.util.Merge
指令碼使用小結:
1.開啟叢集,start-hbase.sh
2.關閉叢集,stop-hbase.sh
3.開啟/關閉所有的regionserver、zookeeper,hbase-daemons.sh start/stop regionserver/zookeeper
4.開啟/關閉單個regionserver、zookeeper,hbase-daemon.sh start/stop regionserver/zookeeper
5.開啟/關閉master hbase-daemon.sh start/stop master, 是否成為active master取決於當前是否有active master
兩個進階指令碼
6.rolling-restart.sh 可以用來挨個滾動重啟
7.graceful_stop.sh move伺服器上的所有region後,再stop/restart該伺服器,可以用來進行版本的熱升級
幾個細節:
1。 hbase-daemon.sh start master 與 hbase-daemon.sh start master --backup,這2個命令的作用一樣的,是否成為backup或active是由master的內部邏輯來控制的
2。stop-hbase.sh 不會呼叫hbase-daemons.sh stop regionserver 來關閉regionserver, 但是會呼叫hbase-daemons.sh stop zookeeper/master-backup來關閉zk和backup master,關閉regionserver實際呼叫的是hbaseAdmin的shutdown介面
3。通過$HBASE_HOME/bin/hbase stop master關閉的是整個叢集而非單個master,只關閉單個master的話使用$HBASE_HOME/bin/hbase-daemon.sh stop master
4。$HBASE_HOME/bin/hbase stop regionserver/zookeeper 不能這麼調,調了也會出錯,也沒有路徑會呼叫這個命令,但是可以通過$HBASE_HOME/bin/hbase start regionserver/zookeeper 來啟動rs或者zk,hbase-daemon.sh呼叫的就是這個命令
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/42046/viewspace-764227/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell編寫服務啟動指令碼指令碼
- Shell指令碼控制docker容器啟動順序指令碼Docker
- 多臺kafka同時啟動shell指令碼Kafka指令碼
- 幾個shell自動化指令碼(轉)指令碼
- Shell指令碼 | 效能測試之啟動時間指令碼
- Mongodb總結1-啟動和Shell指令碼MongoDB指令碼
- shell指令碼實現DNS正向解析指令碼DNS
- shell指令碼-免互動指令碼
- shell指令碼監控啟動停止weblogic服務指令碼Web
- SHELL指令碼實現Oracle自啟動與關閉指令碼Oracle
- Slackware啟動指令碼與System V啟動指令碼的區別何在?(轉)指令碼
- 【轉載】監控Oracle資料庫的常用shell指令碼Oracle資料庫指令碼
- slackware啟動指令碼詳解(轉)指令碼
- FreeBSD系統啟動指令碼(轉)指令碼
- Debian系統啟動指令碼(轉)指令碼
- 遠端啟動HADOOP+YARN叢集Shell指令碼HadoopYarn指令碼
- linux下啟動和終止JAVA程式shell指令碼LinuxJava指令碼
- 啟動Hbase Shell失敗——找不到或無法載入主類org.jruby.MainAI
- shell指令碼攻略--DNS正向解析一鍵部署指令碼DNS
- 執行Shell指令碼的方式(轉)指令碼
- 自動輸入密碼使用root許可權開啟shell指令碼密碼指令碼
- shell動態指令碼和pl/sql動態指令碼的比較指令碼SQL
- shell指令碼指令碼
- 【轉載】linux自動分割槽指令碼Linux指令碼
- 利用shell指令碼生成動態sql指令碼SQL
- ORACLE自動備份shell指令碼Oracle指令碼
- svn and maven 自動部署shell指令碼Maven指令碼
- httpd啟動指令碼httpd指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 一個簡單的Linux啟動jar包的shell指令碼LinuxJAR指令碼
- (轉載)五MongoDB互動shellMongoDB
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- 網頁檔案自動下載入庫指令碼_shell_sqlldr網頁指令碼SQL
- BASH Shell的指令碼程式設計(轉)指令碼程式設計
- shell擴充套件——免互動指令碼套件指令碼
- 自動重建失效index的shell指令碼Index指令碼
- Tomcat的啟停指令碼原始碼解析Tomcat指令碼原始碼
- MacOS 啟動 -- Redis指令碼MacRedis指令碼