報錯:關閉HBase時無法找到Master:no hbase master found(完美解決)


報錯現象

關閉HBase的時候,報錯:no hbase master found

 

但是此時我可以確定 HMaster 處於存活狀態,而且hadoop和zookeeper也都運行正常。

報錯原因

此時可以大體確定報錯原因,系統找不到HBase的pid文件,pid文件里面是HBase的進程號,找不到進程號系統就沒有辦法去結束這個進程。

HBase的pid文件默認存放路徑為 /tmp 路徑,可以進去看一下有沒有和HBase相關的文件。肯定沒有,因為很有可能被操作系統刪掉了。

報錯解決

(1)修改pid文件存放路徑

進入 /opt/hbase-2.0.0/conf 目錄,找到 hbase-env.sh 進行修改

將文件中的對應行修改(大約119行左右)

export HBASE_PID_DIR=/var/hbase/pids

路徑可以按照自己的習慣指定,但是一定要放在一個安全的地方,不要動不動就被linux系統抓了壯丁刪掉。

(2)暴力解決(測試環境使用)

直接kill掉HBase的相關進程,重啟服務就行了,重啟之后新的pid就會在指定目錄下生成,相同的問題以后也就不會出現了。

如果是測試環境可以使用這種簡單粗暴的方法,小幾率會造成丟數據或者HBase無法啟動的情況,但是解決問題簡單、快速。

(3)安全解決(生產環境使用)

如果節點機器上有HMaster、HRegionServer兩個進程,需要添加的文件如下:

hbase-root-master.pid
hbase-root-master.znode
hbase-root-regionserver.pid
hbase-root-regionserver.znode
如果節點機器上只有HRegionServer進程,需要添加的文件如下:

hbase-root-regionserver.pid
hbase-root-regionserver.znode

第一步:在HBase未關閉的情況下再去啟動HBase,使其生成pid存放目錄(主節點)

第二步:添加hbase-root-regionserver.pid文件(在包含HRegionServer的節點執行此操作)

查看HRegionServer的進程號,進程號就是pid文件里面的內容,直接復制進去保存。

將進程號記下來,去/var/hbase/pids目錄下創建一個名為 hbase-root-regionserver.pid 的文件,

將進程號37821(根據自己情況,不要復制我的)復制進去,保存退出。

 

 

第三步:添加hbase-root-regionserver.znode文件(在包含HRegionServer的節點執行此操作)

進入zookeeper客戶端:

[root@c202pc1 pids]# zkCli.sh

[zk: localhost:2181(CONNECTED) 8] ls /hbase/rs/c202pc1,16020,1593770260358  # 一直點Tab鍵(不要太死板,偶爾點個/鍵),就會出來一串字符

host:c202pc1

port:16020

startcode:1593770260358

/var/hbase/pids目錄下創建一個名為 hbase-root-regionserver.znode 的文件,將/hbase/rs/c202pc1,16020,1593770260358(根據自己情況,不要復制我的)復制進去,保存退.出。

 

第四步:添加hbase-root-master.pid文件(在包含HMaster的節點執行此操作)

查看HRegionServer的進程號,進程號就是pid文件里面的內容,直接復制進去保存。

將進程號記下來,去/var/hbase/pids目錄下創建一個名為 hbase-root-master.pid 的文件,將進程號37693(根據自己情況,不要復制我的)復制進去,保存退出。

 

第五步:添加hbase-root-master.znode文件(在包含HMaster的節點執行此操作)

/var/hbase/pids目錄下創建一個名為 hbase-root-master.znode 的文件,將c202pc1,16000,1593770258927(根據自己情況,不要復制我的)復制進去,保存退出。

host:c202pc1

port:16000

startcode:1593770258927 (這里隨便打幾個數字就可以,因為我沒有在zookeeper中找到這串字符,但是發現隨便輸入一串數字也不會報錯。)

 

第六步:重啟

先關HBase

再關Hadoop

再關Zookeeper

再按照相反順序啟動即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM