昨天測試環境的Hbase啟動有問題,日誌中顯示: transaction type: 1 error: KeeperErrorCode = NoNode for /hbase hmaster等其他進程日誌中顯示連接不上zookeeper,發現zookeeper啟動有問題。 於是判斷可能是zookee ...
昨天測試環境的Hbase啟動有問題,日誌中顯示:
transaction type: 1 error: KeeperErrorCode = NoNode for /hbase
hmaster等其他進程日誌中顯示連接不上zookeeper,發現zookeeper啟動有問題。
於是判斷可能是zookeeper
中的某些數據丟失了,之前也出現過類似的啟動問題,都是清除zookeeper所有數據解決的,這顯然不能根本上解決問題。
進一步分析和判斷想到hbase的數據目錄,由於商測環境是用偽分散式的方式部署的,zookeeper集成在hbase里管理,所以zookeeper的數據也在hbase的臨時數據目錄下。hbase的臨時目錄預設是放在/tmp的,而linux的/tmp目錄是會被定期清理的(參考linux系統的tmpwatch)。到此問題已基本定位清楚了,修改hbase的臨時目錄位置,問題解決。
- hbase.rootdir
這個目錄是region server的共用目錄,用來持久化Hbase。URL需要是'完全正確'的,還要包含文件系統的scheme。例如,要表示hdfs中的 ‘/hbase'目錄,namenode 運行在namenode.example.org
的9090
埠。則需要設置為hdfs:~/~/namenode.example.org:9000 /hbase
。預設情況下Hbase是寫到/tmp
的。不改這個配置,數據會丟失。
預設: file:~/~//tmp/hbase-${user.name}/hbase
hbase.tmp.dir
本地文件系統的臨時文件夾。可以修改到一個更為持久的目錄上。(/tmp會清除)
預設: /tmp/hbase-${user.name}
這兩點是hadoop/hbase系統部署和運維要重點註意的事項
更多精彩內容請訪問首發博客http://jenwang.me
進一步交流:
- Email:[email protected]
- 對於本博客某些話題感興趣,希望進一步交流的,請加 qq 群:2825967
- 更多技術交流分享在圈子「架構雜談」,跟老司機們聊聊互聯網前沿技術、架構、工具、解決方案等