概要: HBase には、ユーザーに管理、分析、修復、デバッグ機能を提供するための多くの操作および保守ツールが付属しています。この記事では、よく使用される HBase ツールをいくつか紹介します。開発者や運用保守担当者は、この記事を参考にして、これらのツールを使用して HBase の日常的な管理と運用を行うことができます。 HBase コンポーネントの紹介 HBase は人気があり、広く使用されている NoSQL データベースです。設計アーキテクチャとプロセスが複雑なため、ビッグデータの経験がほとんどない運用・保守担当者にとっては敷居が高くなります。この記事では、HBase の既存のツールを紹介し、まとめます。 冒頭に書いたメモ: 1) HBase のバージョンによって大きな違いがあるため (たとえば、hbck ツールは HBase2.x から削除されています)、この記事で使用されているすべてのコマンド ラインは、HBase バージョン 1.3.1 に対応する MRS_1.9.3 の環境で実行されています。一部のコマンドは HBase2 ではサポートされていません (HBase2 については、時間があれば別途紹介します)。 2) この記事で言及されている HBase ツールはすべてオープンソース ツールであり、メーカーが開発した最適化および運用保守ツールは含まれていません。 カナリアツール HBase Canary は、HBase クラスターの現在のステータスを検出するためのツールです。簡単なクエリを使用して、HBASE 上のリージョンが使用可能 (読み取り可能) かどうかを確認します。主に2つのモードに分かれています 1) リージョン モード (デフォルト): 各リージョンの各 CF のデータの一部をランダムにクエリし、クエリが成功したかどうかとクエリの待機時間を出力します。 #t1 および tsdb-uid テーブルを確認します hbase org.apache.hadoop.hbase.tool.Canary t1 tsdb-uid #注: テーブルが指定されていない場合はすべての領域をスキャンします 2) リージョンサーバー モードでは、クエリ用に各リージョンサーバーでテーブルがランダムに選択され、クエリの成功とクエリの待機時間が出力されます。 #リージョンサーバーをチェック hbase org.apache.hadoop.hbase.tool.Canary -regionserver node-ana-coreQZLQ0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com #注: リージョンサーバーが指定されていない場合は、すべてのリージョンサーバーをスキャンします Canaryは、次のように参照できるいくつかの単純なパラメータを指定することもできます。 要約:
HFile ツール HBase HFile 表示ツール。主に特定の HFile のコンテンツ/メタデータを確認するために使用されます。業務上、リージョンが読み取れない、ファイルの問題によりリージョンサーバー上でリージョンを開けない、またはファイルの読み取り時に例外が発生するなどの問題が発生した場合は、このツールを使用して、HFile のみに問題があるかどうかを確認できます。 #t1テーブルのHFilesの1つの詳細を表示し、KVを出力します hbase org.apache.hadoop.hbase.io.hfile.HFile -v -m -p -f /hbase/data/default/t1/4dfafe12b749999fdc1e3325f22794d0/cf1/06e102be436c449693734b222b9e9aab 使用されるパラメータは次のとおりです。 要約:
RowCounter および CellCounter ツール RowCounter は、MapReduce タスクを使用してテーブル行の数をカウントする統計ツールです。 RowCounter に似ていますが、行数、列ファミリ、修飾子、テーブル内の対応する出現回数など、テーブルに関連するより詳細な統計を収集します。どちらのツールも、行の開始位置と終了位置、およびタイムスタンプを指定して範囲クエリを実行できます。 # RowCounter スキャン t1 hbase org.apache.hadoop.hbase.mapreduce.RowCounter t1 #CellCounter を使用して t1 テーブルをスキャンし、結果を HDFS の /tmp/t1.cell ディレクトリに書き込みます hbase org.apache.hadoop.hbase.mapreduce.CellCounter t1 /tmp/t1.cell 使用されるパラメータは次のとおりです。 要約: クラスターへの影響: 3 つ星 (テーブルのすべての領域をスキャンするには MapReduce を開始する必要があり、クラスター リソースを占有します) 実用性: 3 つ星 (HBase が独自のテーブル内の行数をカウントする唯一のツールであり、HBase シェルでのカウント効率は比較的低い) クリーンツール clean コマンドは、ZooKeeper および HDFS 上の HBase データをクリアするために使用されるツールです。クラスターがすべてのデータをクリーンアップまたは消去する必要がある場合、HBase を元の状態に復元できます。 #HBase 内のすべてのデータをクリアします。hbase clean --cleanAll は次のパラメータを使用します。 要約: クラスターへの影響: 5 つ星 (HBase クラスター上のすべてのデータを削除) 実用性: 2 つ星 (HBase データをリセットする必要があるシナリオ (OBS 上の HBase への切り替えなど) は除きますが、これはめったに使用されません) HBCKツール HBase の hbck ツールは、日常の運用とメンテナンスで最もよく使用されるツールです。クラスター上のリージョンの一貫性をチェックできます。 HBase の RIT ステータスはより複雑で問題が発生しやすいため、日常の運用やメンテナンス中にリージョンのオフライン/不整合などの問題に頻繁に遭遇します。このとき、hbck のさまざまな検査結果に応じて、対応するコマンドを使用して修復できます。 #テーブルt1のリージョンステータスを確認する hbase hbck t1 #テーブル t1 のメタを修正し、再割り当てします hbase hbck -fixMeta -fixAssignments t1 このツールは、非常に多くの詳細なシナリオで使用されるため、ここでは詳細を紹介しません。さまざまな異常なシナリオを修復するためのパラメータの説明を表示できます。注意: 異常の原因がわからない場合は、修復コマンドをむやみに使用しないでください。問題が悪化する可能性があります。 使用されるパラメータは次のとおりです。 要約:
領域分割ツール RegionSplitter は HBase の事前分割ツールです。テーブルを初期化するときに事前分割を構成しないと、HBase はリージョンを分割する方法を知らず、後続のリージョン/リージョン サーバーのホットスポットが発生する可能性があります。最善の方法は、最初に分割ポイントを予測し、テーブルの構築時に事前分割を実行して、最初にビジネス アクセスの全体的な負荷分散を確保することです。 RegionSplitter は、特定の分割アルゴリズムを使用してテーブルを構築するときに事前分割を実行できます。次の 2 つのアルゴリズムが付属しています。 16進文字列分割 8つの16進文字を使用して分割します。これは、行キーがプレフィックスとして16進文字列(ASCII)である場合に適しています。 ユニフォーム分割 長さ 8 のバイト配列を使用して分割し、元のバイト値 (0x00 から 0xFF) に応じて右側に 00 を入力します。このようにパーティション化されたテーブルにデータを配置する場合、何らかの方法で行キーを変更する必要があります。たとえば、元の行キーが rawStr の場合、その hashCode を取得し、バイト ビットを反転して、元の行キー文字列の前に配置する必要がありま す。 #test_table テーブルを作成し、HexStringSplit アルゴリズムを使用して 10 を事前パーティション分割します hbase org.apache.hadoop.hbase.util.RegionSplitter test_table HexStringSplit -c 10 -f f1 #ヒント: この操作は、hbase シェルで create 'test_table', {NAME => 'f1'}, {NUMREGIONS => 10, SPLITALGO => 'HexStringSplit'} を実行するのと同等です。 要約: HBase にどのような事前分割アルゴリズムが付属しているかに関係なく、テーブル データ自体の行キーが合意された形式に準拠していることが条件となります。実際には、ユーザーはビジネスに応じて行キーを設計し、独自の事前分割アルゴリズムを実装する必要があります (SplitAlgorithm インターフェイスを実装)。 クラスターへの影響: 1 つ星 (テーブル作成操作、他のクラスター サービスへの影響なし) 実用性: 3 つ星 (実際の事前分割は実際のビジネスに基づいています。テストでは、HBase のデフォルトの分割アルゴリズムを使用して行キー形式を構築できます) FSHLog ツール FSHLog は、HBase に付属する WAL ファイルの検査および分割ツールです。主に 2 つの部分に分かれています。 ごみ WALファイルの特定の内容をダンプする スプリット WALフォルダのWAL分割操作をトリガーする # 現在の WAL ファイルの内容をダンプします hbase org.apache.hadoop.hbase.regionserver.wal.FSHLog --dump /hbase/WALs/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com,16020,1591846214733/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com%2C16020%2C1591846214733.1592184625801 関連パラメータ 要約:
WALPlayerツール WALPlayer は、WAL ファイル内のログを HBase に再生するツールです。特定のテーブルまたはすべてのテーブルのデータを再生したり、対応する時間間隔やその他の条件を指定してデータを再生したりできます。 #WALファイルのデータをテーブルt1に再生する hbase org.apache.hadoop.hbase.mapreduce.WALPlayer /tmp/node-ana-coreqzlq0002.1432edca-3d6f-4e17-ad52-098f2adde2e6.com%2C16020%2C1591846214733.1592184625801 t1 Q&A: FSHLog と WALPlayer はどちらも WAL ファイル内のデータを HBase に復元できます。それらの違いは何ですか? FSHLog は HMaster への WAL 分割要求をトリガーし、HBase 独自の WAL 分割プロセスに従って、WAL 内のすべてのデータを HBase に復元します。 WALPlayerは独自のMRタスクを開始してWALファイル内のデータをスキャンし、適格なデータを特定のテーブルに格納するか、HFileを特定のディレクトリに出力します。 関連パラメータ: 要約:
オフラインメタ修復 OfflineMetaRepair ツールは、HBase メタデータを修復するために使用されます。 HDFS 上の HBase のリージョン/テーブル メタデータに基づいて HBase メタデータを再構築します。 #hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair のメタデータを再確立します Q&A: hbck の fixMeta は HBase メタデータを修復し、より柔軟に使用するために特定のテーブルを指定することもできます。OfflineMetaRepair を使用する必要はありますか? hbck ツールは HBase のオンライン修復ツールであり、HBase が起動されていない場合は使用できません。 OfflineMetaRepairはオフライン状態のHBaseメタデータを修復します 関連パラメータ: 要約:
スイーパーツール Sweeper ツール (HBASE-11644) は、HBase クラスター内の小さな MOB ファイルをマージし、冗長な MOB ファイルを削除できます。列ファミリに基づいて対応する SweepJob タスクを開始し、対応する MOB ファイルをマージします。このツールは MOB メジャー コンパクションと同時に実行することはできず、同じ列ファミリの複数の Sweeper タスクを同時に実行することもできないことに注意してください。 #テーブルt1でSweeperを実行する hbase org.apache.hadoop.hbase.mob.mapreduce.スイーパー t1 cf1 関連パラメータ: 要約:
今回紹介したHBaseの運用保守ツールは以上です。Bulkloadの一括インポートやデータ移行、テスト関連のPEなど他のツールについては今回は割愛します。何か間違っている点がありましたら、ご訂正ください。ありがとうございます。 公式ドキュメント: https://hbase.apache.org/book.html これで、HBase の一般的な運用および保守ツールのトップ 10 に関するこの記事は終了です。HBase の運用および保守ツールに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLデータベース入門:マルチインスタンス構成方法の詳しい説明
>>: TypeScript における列挙型の理解と応用シナリオ
私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...
1. エフェクトHTMLを送信する <div id="送信ボタン">...
目次1. はじめに2. 自己増分ストレージの説明3つの自己付加価値修正メカニズム4. 自己評価を修正...
この記事では、シンプルなカルーセル効果を実現するためのJavaScriptの具体的なコードを参考まで...
Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...
最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...
ゼロ: 古いバージョンをアンインストールするDocker の古いバージョンは、docker、dock...
top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...
目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...
前回の記事では、JS を使って簡単な揺れ効果を実現する方法を紹介しました。ご興味があればクリックして...
画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...
場合によっては、特定の条件に基づいて Web ページ内の HTML 要素を表示するか非表示にするかを...
MultiTail は、tail コマンド機能と同様に、複数のドキュメントを同時に監視するために使用...
要素 ui テーブルにはドラッグ アンド ドロップによる並べ替え機能が組み込まれておらず、サードパー...
目次概要静的型チェックコードスタイルチェック(Linter)パッケージマネージャーモジュールローダー...