Hbase建立表錯誤
阿新 • • 發佈:2019-02-14
啟動hbase出現如下錯誤:
hbase(main):004:0> create 'zhh','cf' ERROR: java.io.IOException: Table Namespace Manager not ready yet, try again later at org.apache.hadoop.hbase.master.HMaster.getNamespaceDescriptor(HMaster.java:3187) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1743) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1782) at org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java:40470) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2012) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:98) at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:73) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
錯誤原因可能有三個方面:
1、各個節點的時間不一致造成。單節點不存在該問題,主要針對叢集。
2、zookeeper引起的,通常這種情況往往是在你正在執行一個程序正在操作hbase資料庫的時候,hbase程序被殺掉或hbase服務被停掉所引起的,如果是hbase自身管理的zookeeper。
解決方法:可以將hbase的zookeeper目錄下的檔案全都刪除掉,然後再重啟hbase服務就可以了.
3、資料損壞導致當前資料存放的regin無法使用,使用hadoop fsck /hbase 檢查是否有損壞塊。
解決方法:此時使用hadoop fsck 進行分析 就能看到CORRUPT 的storefile路徑 hadoop fs -rm 當前storefile
4、本例子錯誤原因並非以上情況。
解決方法:刪除hbase/logs的所有日誌檔案,然後重啟hbase就可以了