當(dāng)HBase 集群down 了重啟后,可能會出現(xiàn)有些region 沒有上線成功,導(dǎo)致MapReduce 任務(wù)在處理時找不到該region。針對這樣情況,可以使用hbck 工具進(jìn)行檢測和恢復(fù)。
檢測
在HBase Gateway 的機(jī)器上運(yùn)行
$ hbase hbck
修復(fù)
如果發(fā)現(xiàn)存在不一致的情況,可進(jìn)行修復(fù)。
設(shè)置HBase 的環(huán)境變量,將Heap Size 設(shè)為2G,否則執(zhí)行修復(fù)時會因?yàn)镺OM 導(dǎo)致失敗。
export HBASE_OPTS="-Xmx2147483648 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -Djava.net.preferIPv4
$ source /etc/hbase/conf.cloudera.hbase/hbase-env.sh
$ HADOOP_USER_NAME=hbase hbase hbck -fixMeta -fixAssignments
修復(fù)完后,可以再次執(zhí)行hbck 進(jìn)行檢測。其他HBase 相關(guān)的tool 可見官方文檔。