hbase クエリ エラー: の領域が見つかりません

クラスターのリソース不足による 1 日。hbase リージョン サーバーの広範囲が負荷の爆発により停止し、翌日には一部のクエリでエラーが報告されました。

 

 

 クラスター内のテーブルに対する一部のクエリではリージョンを見つけることができません。

クラスターの再起動とクラスターのローリング再起動を試しましたが、ローリング再起動プロセスによってリージョン サーバー上のリージョンが移動されたり、移動されたりすることが考えられました。修理できるか試してみましたが、決定的な修理はできませんでした。転出や転入によって地域そのものが変わるわけではないからです。ただ出入りするだけ

hbase hbck -details 'hbsxx_bsdb:taj_xxx_ktgg' を実行してステータスを確認してください

発見する

hbck エラーの不整合が検出されました  

Web UIのHBCKレポートを見てみました。 

2 つの穴と 12 のオーバーラップがあります

 

おそらくメタデータに問題があると思われます。

直してみる

まず、付属の hbck ツールをインストールします。このツールは表示のみで操作はできません。hbase2 は hbck コンポーネントを放棄しました。HBCK2 は HBase から削除され、別のプロジェクトになりました。このツールを使用したい場合は、独自の HBase バージョンを使用する必要があるため、ソース コードをコンパイルします。

GitHub アドレスは: https://github.com/apache/hbase-operator-tools.git

eec005931210b4ad8eb54bbcf031db51.png

 

pom 内の hbase バージョンを実際の hbase2.x バージョンに置き換え、プロジェクトのルート ディレクトリでパッケージ化コマンドを実行します。

mvn clean install -DskipTests
をパッケージ化すると、複数の jar パッケージが存在するので、必要な hbck2 (hbase-operator-tools/hbase-hbck2/target/hbase-hbck2-1.0.0-SNAPSHOT.jar) を取り出します。

cdh の場合は、公式 Web サイト https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/admin_hbase_hbck.html からダウンロードする必要があります。

埋め込む

hbase hbck -j /path/hbck2.jar addFsRegionsMissingInMeta  hbxxxsdb:taj_n04xxxktgg

 決断力は無駄だ 

 そして実行します

 hbase hbck -j /hbase-hbck2-<version>.jar extraRegionsInMeta --fix hbxxxsdb:taj_n04xxxktgg

 

私に返された、不一致の領域はありません、このテーブルは良好です、また無効です

別のコマンドを試してください 

hbase hbck -j hbase-hbck2-<version>.jar filesystem --fix hbxxxsdb:taj_n04xxxktgg

一瞬も終わらないのを見て、使えるかも知れないと思ったのですが、結局1時間以上も応答なしでハングアップしてしまいました。失敗

hbase hbck -j hbase-hbck2-<version>.jar  extraRegionsInMeta --fix hbxxxsdb:taj_n04xxxktgg

それでも、「このテーブルは良好な不一致領域は無効です」というプロンプトが表示されます。

戻ってhbaseのUIを確認してください

前回の HBCK レポートを確認したところ、問題が報告されたリージョンが空であることが判明したため、このリージョンを他のリージョンとマージすることにしました。Web 上のホールは 1 つ減りましたが、コマンド ラインの hbck は変更されておらず、依然として競合領域があることを示すメッセージが表示されます。

online_merge によるホット マージ リージョン

hbase shell  
merge_region '39erijidsfd8s098fen32j3i8d9','48jfidnxoskd023843257822j3i'

Region的hash值就是Region名称的最后那段在两个.之间的字符串部分

しかし、穴がなくなったので、get でもう一度テストすることにし、思い切って RowKey が正常に見つからないという空のリターンを返しました。もうエラーはありません。次に、開発者にテストしてもらいます。開発フィードバックは通常どおりに照会できます

 

 

 

おすすめ

転載: blog.csdn.net/h952520296/article/details/130529849