HBaseにはhbckという、リージョンやテーブルの整合性や完全性をチェックしたり、壊れていたりした場合に修復するツールがあります。この記事では、そのhbckの使い方や仕組みを説明したいと思います。バージョンはHBase 1.1.2 (HDP 2.5) をベースにしています。
本記事は以下の記事の続きです。
HBase hbckについて その1
http://qiita.com/brfrn169/items/3c4c3c1b04c36db250f6
HBase hbckについて その2
http://qiita.com/brfrn169/items/d62a4b128ed623748262
その他のオプション
今回は、ここまでに説明したオプション以外のオプションについて説明していきたいと思います。
-metaonly
-metaonlyを指定するとhbase:metaテーブルの整合性のみをチェック・修正します。
-noHdfsChecking
-noHdfsCheckingを指定すると、HDFS上の.regioninfoファイルの情報をチェックしたり、HDFS上の問題(ホール、オーバラップ等)の修正を行いません。hbase:metaの情報がHDFS上と完全に一致してることを前提のチェック・修正を行います。
-ignorePreCheckPermission
hbckは、正しくチェック・修正を行うために、最初にHDFS上のパーミッションチェックを行います。-ignorePreCheckPermissionを指定するとこれをスキップすることができます。
-checkCorruptHFiles
-checkCorruptHFilesを指定すると、実際にHFileをオープンしその内容のチェックを行います。また、-sidelineCorruptHFilesを指定すると、HFileが破損していた時にそのHFileを退避させます。この時、退避場所はhbaseのデータディレクトリ内の、"hbase.hfile.quarantine.dir"プロパティで指定されたディレクトリ以下になります。
-boundaries
-boundariesを指定すると、hbase:meta上のリージョンの境界と実際のHFileの境界が正しいかどうかをチェックします。この際には実際にHFileの内容を読み込みチェックします。
-repair
-repairは以下のオプションのショートカットオプションになります。
-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps -fixReferenceFiles -fixTableLocks -fixOrphanedTableZnodes
-repairHoles
-repairHolesは以下のオプションのショートカットオプションになります。
-fixAssignments -fixMeta -fixHdfsHoles
まとめ
今回でhbckのシリーズを終わりにします。ここまで、3回に渡ってhbckの説明をしてきましたが、HBaseのトラブルシューティングの際に参考になれば幸いです。