十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章給大家介紹HBase啟動后HMaster掛掉的解決方案是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、永川ssl等。為超過千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的永川網(wǎng)站制作公司
最近在使用HBase的時候,發(fā)現(xiàn)使用HBase shell的list命令時出錯,jps查看了一下進(jìn)程,發(fā)現(xiàn)HMaster掛掉了,在確認(rèn)Hadoop狀態(tài)正常后,查看HMaster的日志,發(fā)現(xiàn)報錯如下:
2015-02-17 05:46:15,212 DEBUG [master:master:60000] lock.ZKInterProcessLockBase: Released /hbase/table-lock/hbase:namespace/write-master:600000000000004 2015-02-17 05:46:15,212 FATAL [master:master:60000] master.HMaster: Master server abort: loaded coprocessors are: [] 2015-02-17 05:46:15,213 FATAL [master:master:60000] master.HMaster: Unhandled exception. Starting shutdown. org.apache.hadoop.hbase.TableExistsException: hbase:namespace at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:120) at org.apache.hadoop.hbase.master.TableNamespaceManager.createNamespaceTable(TableNamespaceManager.java:232) at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:86) at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:1049) at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:913) at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:606) at java.lang.Thread.run(Unknown Source) 2015-02-17 05:46:15,214 INFO [master:master:60000] master.HMaster: Aborting 2015-02-17 05:46:15,214 INFO [master,60000,1424180766819-BalancerChore] balancer.BalancerChore: master,60000,1424180766819-BalancerChore exiting 2015-02-17 05:46:15,215 INFO [master,60000,1424180766819-ClusterStatusChore] balancer.ClusterStatusChore: master,60000,1424180766819-ClusterStatusChore exiting 2015-02-17 05:46:15,215 INFO [CatalogJanitor-master:60000] master.CatalogJanitor: CatalogJanitor-master:60000 exiting 2015-02-17 05:46:15,216 DEBUG [master:master:60000] master.HMaster: Stopping service threads
出現(xiàn)兩個FATAL(第2、3行),嚴(yán)重錯誤,直覺上感覺跟Zookeeper有關(guān),嘗試了多種方法后,終于找出了正確解決方案,此方案來自Stack Overflow上的polaris大神(原文網(wǎng)址附在最后,有興趣的可以看一下)。
4個步驟解決問題:
1、停止HBase集群;
2、使用HBase的離線修復(fù)命令
hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair
3、刪除Zookeeper中已存在的HBase的舊的信息
進(jìn)入zookeeper客戶端,注意,要在zookeeper集群啟動情況下進(jìn)入客戶端:
./opt/zookeeper/bin/zkCli.sh
使用 ls / 查看zookeeper中的數(shù)據(jù)目錄
使用 rm /hbase 刪除zookeeper中的hbase數(shù)據(jù)
4、重啟HBase集群,集群恢復(fù)正常。
思考:
解決這個問題后,一直在反思集群為什么會突然出現(xiàn)這種情況,后來終于搞明白。之前對集群測試時,在主節(jié)點上部署了一個zookeeper節(jié)點(主節(jié)點之前沒有部署zookeeper),后來為防止zookeeper節(jié)點總數(shù)變成偶數(shù),又把這個zookeeper節(jié)點刪掉了??赡苁沁@個原因造成zookeeper中已存在的hbase數(shù)據(jù)有問題,所以清空zookeeper中的hbase數(shù)據(jù),就能解決問題了。
關(guān)于HBase啟動后HMaster掛掉的解決方案是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。