最近學(xué)習(xí)了hbase的相關(guān)知識(shí),也看了一下hbase的bin/目錄下的腳本,很多腳本細(xì)節(jié)并不理解,大致的輪廓有個(gè)了解,做一下學(xué)習(xí)總結(jié):
創(chuàng)新互聯(lián)建站是一家專(zhuān)注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃、微信小程序、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開(kāi)發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立十余年以來(lái),已經(jīng)為上1000+成都發(fā)電機(jī)回收各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的上1000+客戶與我們一路同行,見(jiàn)證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
."$bin"/hbase-config.sh 調(diào)用腳本hbase-config.sh 裝載相關(guān)環(huán)境變量,hbase-config.sh腳本同時(shí)調(diào)用了conf/hbase-env.sh腳本。
接下來(lái)腳本通過(guò)判斷是否為分布式模式來(lái)啟動(dòng)不同的服務(wù)(同時(shí)調(diào)用了腳本hbase)
distMode=`$bin/hbase--config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBa
seConfToolhbase.cluster.distributed | head -n 1`
if ["$distMode" == 'false' ]
then
"$bin"/hbase-daemon.sh --config"${HBASE_CONF_DIR}" start master //如果不是分布式模式,則只啟動(dòng)master
else
"$bin"/hbase-daemons.sh --config"${HBASE_CONF_DIR}" start zookeeper
"$bin"/hbase-daemon.sh --config"${HBASE_CONF_DIR}" start master
"$bin"/hbase-daemons.sh --config"${HBASE_CONF_DIR}" \
--hosts "${HBASE_REGIONSERVERS}"start regionserver
"$bin"/hbase-daemons.sh --config"${HBASE_CONF_DIR}" \
--hosts "${HBASE_BACKUP_MASTERS}"start master-backup
fi
從上面腳本中可以看出,啟動(dòng)master是調(diào)用腳本hbase-daemon.sh,而啟動(dòng)zookeeper、regionserver、master-backup三個(gè)服務(wù)是調(diào)用了腳本hbase-daemons.sh;
同時(shí)也可以看出分布式模式下的各服務(wù)的啟動(dòng)順序:
(zookeeper,master,regionserver,master-backup)
在hbase-daemons.sh腳本中可以看出啟動(dòng)zookeeper,regionserver,master-backup三個(gè)服務(wù)的分別是調(diào)用了zookeepers.sh regionservers.sh master-backup.sh三個(gè)腳本;
case $command in
(zookeeper)
exec"$bin/zookeepers.sh" $args
;;
(master-backup)
exec"$bin/master-backup.sh" $args
;;
(*)
exec"$bin/regionservers.sh" $args
;;
esac
hbase停止服務(wù)非常簡(jiǎn)單和直接,kill -0 `cat $pid`,查看腳本stop-hbase.sh
可以看出先調(diào)用了腳本hbase:
nohup nice -n ${HBASE_NICENESS:-0} "$HBASE_HOME"/bin/hbase\
--config"${HBASE_CONF_DIR}" \
master stop "$@"> "$logout" 2>&1 < /dev/null &
然后判斷是否為分布式模式,如果是,通過(guò)調(diào)用hbase-daemon.sh來(lái)停止master-backup和zookeeper服務(wù)
if [ "$distMode" == 'true' ]
then
# TODO: store backup mastersin ZooKeeper and have the primary send them a shu
tdown message
# stop any backup masters
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}"\
--hosts "${HBASE_BACKUP_MASTERS}"stop master-backup
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}"stop zookeeper
fi