0.hbase的組件 架構 參考:https://cloud.tencent.com/developer/article/1084209shell
各個組件的功能apache
參考:https://zhuanlan.zhihu.com/p/75454915vim
1.現象:hbase shell > status #正常架構
hbase shell > list #正常oop
hbase shell > create 'person', 'name', 'age' #報錯以下:spa
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
2.本質:看hbase的日誌,報錯以下:.net
vim ./hbase-root-master-do1cloud01.log.1日誌
2019-07-31 14:58:29,149 WARN [master/do1cloud01:16000:becomeActiveMaster] master.HMaster: hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPENING, ts=1564556308397, server=do1cloud02,16020,1564556283727}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined.
3.解決方案:code
參考這篇文檔:https://blog.csdn.net/dream_bin/article/details/88343000server
1、時間沒同步,date -R查看每一個節點機器的時間,看偏差是否在30秒內————本人偏差正常 2、查看hbase-site.xml中參數hbase.rootdir的值,須要放在hdfs上,且主機名和端口號需與hadoop中的core-site.xml中參數fs.defaultFS的值保持一致————本人設置正確 3、修改每一個主機的主機名映射,即/etc/hosts文件————本人該項設置正確 4、注意hbase和hadoop的版本匹配問題,將hadoop下的hadoop-xxxx.jar替換掉hbase/lib下的hadoop-xxxx.jar————這項無稽之談,替換後完全啓動不了hbase進程了,其實查看hbase官網的版本匹配表就OK了,無需手動替換jar包 5、將hadoop下的core-site.xml和hdfs-site.xml複製到hbase/conf目錄下————本人該項操做正確