HBase 2.0 以降では、HBCK は非推奨となり、HBCK2 がメタデータ関連のバグの修正に使用されます。 HBase 2.X クラスタのメタデータ関連のバグの修正に HBCK を引き続き使用すると、リスクが存在する可能性があります。 HBCK2 は HBase プロジェクトには含まれていません。代わりに、HBCK2 とその他の HBase ツールは、hbase-operator-tools という名前の新しいプロジェクトに含まれています。このトピックでは、EMR HBase で HBCK2 を使用する方法について説明します。
前提条件
HBase サービスを含む E-MapReduce(EMR)クラスタが作成されています。詳細については、「クラスタの作成」をご参照ください。
手順
クラスタのマスターノードにログオンします。詳細については、「クラスタへのログオン」をご参照ください。
hbase-operator-tools プロジェクトをダウンロードします。
git clone https://github.com/apache/hbase-operator-tools.gitビジネス要件に基づいて HBase のバージョンを変更します。
cd hbase-operator-tools vim pom.xmlこの例では、HBase 2.4.9 を使用しています。ビジネス要件に基づいて、バージョンを他の HBase 2.x バージョンに変更できます。
<hbase.version>2.4.9</hbase.version>変更したプロジェクトをコンパイルしてパッケージ化します。
mvn clean package -DskipTestsHBCK2 JAR ファイルを指定した HBase クラスタにコピーします。
HBCK2 JAR ファイルのパスは
hbase-hbck2/target/hbase-hbck2-${hbck2-version}.jarです。バグを修正します。
export HBASE_HBCK_OPTS="-Xms512m -Xmx512m" hbase --config /etc/taihao-apps/hbase-conf hbck -j hbase-hbck2-${hbck2-version}.jarコマンドを実行してバグを修正します。
usage: HBCK2 [OPTIONS] COMMAND <ARGS> // 使用方法: HBCK2 [オプション] コマンド <引数> Options: // オプション: -d,--debug run with debug output // デバッグ出力で実行 -h,--help output this help message // このヘルプメッセージを出力 -p,--hbase.zookeeper.property.clientPort <arg> port of hbase ensemble // hbaseアンサンブルのポート -q,--hbase.zookeeper.quorum <arg> hbase ensemble // hbaseアンサンブル -s,--skip skip hbase version check // hbaseバージョンのチェックをスキップ (PleaseHoldException) // (PleaseHoldException) -v,--version this hbck2 version // このhbck2バージョン -z,--zookeeper.znode.parent <arg> parent znode of hbase // hbaseアンサンブルの親znode ensemble // アンサンブル Command: // コマンド: addFsRegionsMissingInMeta <NAMESPACE|NAMESPACE:TABLENAME>... // addFsRegionsMissingInMeta <名前空間|名前空間:テーブル名>... Options: -d,--force_disable aborts fix for table if disable fails. // 無効化に失敗した場合、テーブルの修正を中止します。 To be used when regions missing from hbase:meta but directories // hbase:meta からリージョンが欠落しているが、ディレクトリがHDFSにまだ存在する場合に使用します。 are present still in HDFS. Can happen if user has run _hbck1_ // ユーザーがhbase-2.xクラスタに対して_hbck1_ 'OfflineMetaRepair'を実行した場合に発生する可能性があります。 'OfflineMetaRepair' against an hbase-2.x cluster. Needs hbase:meta // hbase:metaがオンラインである必要があります。 to be online. For each table name passed as parameter, performs diff // パラメータとして渡された各テーブル名について、hbase:metaで利用可能なリージョンとHDFS上のリージョンディレクトリとの差を実行します。 between regions available in hbase:meta and region dirs on HDFS. // hbase:metaで利用可能なリージョンとHDFS上のリージョンディレクトリとの差を実行します。 Then for dirs with no hbase:meta matches, it reads the 'regioninfo' // 次に、hbase:metaに一致しないディレクトリについて、'regioninfo'メタデータファイルを読み取り、hbase:metaに指定されたリージョンを再作成します。 metadata file and re-creates given region in hbase:meta. Regions are // リージョンはhbase:metaテーブルでは'CLOSED'状態で再作成されますが、マスターのキャッシュにはなく、割りも割り当てられません。 re-created in 'CLOSED' state in the hbase:meta table, but not in the // これらのリージョンをオンラインにするには、このコマンド実行の完了時に出力されるHBCK2 'assigns'コマンドを実行します。 Masters' cache, and they are not assigned either. To get these // 注:2.3.0より古いhbaseリリースを使用している場合は、'assigns'出力のセットを実行する前に、HMasterのローリング再起動が必要です。 regions online, run the HBCK2 'assigns'command printed when this // デフォルトの名前空間のテーブル'tbl_1'、名前空間'n1'の'tbl_2'、および名前空間'n2'のすべてのテーブルについて、欠落しているリージョンを追加する例: command-run completes. // $ HBCK2 addFsRegionsMissingInMeta default:tbl_1 n1:tbl_2 n2 NOTE: If using hbase releases older than 2.3.0, a rolling restart of // 再挿入されたすべてのリージョンを含む'assigns'コマンドを返します。 HMasters is needed prior to executing the set of 'assigns' output. // 詳細については、reportMissingRegionsInMetaを参照してください。 An example adding missing regions for tables 'tbl_1' in the default // 詳細については、fixMetaを参照してください。 namespace, 'tbl_2' in namespace 'n1' and for all tables from // namespace 'n2': $ HBCK2 addFsRegionsMissingInMeta default:tbl_1 n1:tbl_2 n2 Returns HBCK2 an 'assigns' command with all re-inserted regions. SEE ALSO: reportMissingRegionsInMeta SEE ALSO: fixMeta assigns [OPTIONS] <ENCODED_REGIONNAME/INPUTFILES_FOR_REGIONNAMES>... // assigns [オプション] <エンコードされたリージョン名/リージョン名の入力ファイル>... Options: -o,--override override ownership by another procedure // 別のプロシージャによる所有権をオーバーライドする -i,--inputFiles take one or more files of encoded region names // エンコードされたリージョン名の1つ以上のファイルを取得する A 'raw' assign that can be used even during Master initialization (if // マスターの初期化中にも使用できる「raw」割り当て(-skipフラグが指定されている場合)。 the -skip flag is specified). Skirts Coprocessors. Pass one or more // コプロセッサを回避します。 encoded region names. 1588230740 is the hard-coded name for the // 1つ以上のエンコードされたリージョン名を渡します。 hbase:meta region and de00010733901a05f5a2a3a382e2**** is an example of // 1588230740はhbase:metaリージョンのハードコードされた名前であり、de00010733901a05f5a2a3a382e2****はユーザースペースのエンコードされたリージョン名の例です。 what a user-space encoded region name looks like. For example: // 例: $ HBCK2 assigns 1588230740 de00010733901a05f5a2a3a382e2**** // $ HBCK2 assigns 1588230740 de00010733901a05f5a2a3a382e2**** Returns the pid(s) of the created AssignProcedure(s) or -1 if none. // 作成されたAssignProcedureのpid、または何もない場合は-1を返します。 If -i or --inputFiles is specified, pass one or more input file names. // -iまたは--inputFilesが指定されている場合は、1つ以上の入力ファイル名を渡します。 Each file contains encoded region names, one per line. For example: // 各ファイルには、エンコードされたリージョン名が1行に1つずつ含まれています。 $ HBCK2 assigns -i fileName1 fileName2 // 例: // $ HBCK2 assigns -i fileName1 fileName2 bypass [OPTIONS] <PID>... // bypass [オプション] <PID>... Options: -o,--override override if procedure is running/stuck // プロシージャが実行中/スタックしている場合はオーバーライドする -r,--recursive bypass parent and its children. SLOW! EXPENSIVE! // 親とその子をバイパスします。低速!高価! -w,--lockWait milliseconds to wait before giving up; default=1 // 放棄する前に待機するミリ秒。デフォルト=1 Pass one (or more) procedure 'pid's to skip to procedure finish. Parent // プロシージャの完了をスキップするために、1つ(または複数)のプロシージャ 'pid'を渡します。 of bypassed procedure will also be skipped to the finish. Entities will // バイパスされたプロシージャの親も完了までスキップされます。 be left in an inconsistent state and will require manual fixup. May // エンティティは不整合な状態のままになり、手動での修正が必要になります。 need Master restart to clear locks still held. Bypass fails if // まだ保持されているロックをクリアするために、マスターの再起動が必要になる場合があります。 procedure has children. Add 'recursive' if all you have is a parent pid // プロシージャに子がいる場合、バイパスは失敗します。 to finish parent and children. This is SLOW, and dangerous so use // 親pidのみがある場合は、親と子を終了するために'recursive'を追加します。 selectively. Does not always work. // これは低速で危険なので、選択的に使用してください。 // 常に機能するとは限りません。 extraRegionsInMeta <NAMESPACE|NAMESPACE:TABLENAME>... // extraRegionsInMeta <名前空間|名前空間:テーブル名>... Options: -f, --fix fix meta by removing all extra regions found. // 見つかったすべての余分なリージョンを削除することでメタを修正します。 Reports regions present on hbase:meta, but with no related // hbase:metaに存在するが、ファイルシステムに関連するディレクトリがないリージョンを報告します。 directories on the file system. Needs hbase:meta to be online. // hbase:metaがオンラインである必要があります。 For each table name passed as parameter, performs diff // パラメータとして渡された各テーブル名について、hbase:metaで利用可能なリージョンと指定されたファイルシステム上のリージョンディレクトリとの差を実行します。 between regions available in hbase:meta and region dirs on the given // --fixオプションを渡すと、余分なリージョンがメタから削除されます。 file system. Extra regions would get deleted from Meta // 注:--fixオプションの使用を決定する前に、報告された余分なリージョンが既存の有効なリージョンと重複しているかどうかを確認することをお勧めします。 if passed the --fix option. // もしそうであれば、"extraRegionsInMeta --fix"は確かに最適なソリューションです。 NOTE: Before deciding on use the "--fix" option, it's worth check if // そうでない場合は、"assigns"コマンドの方が簡単なソリューションです。ファイルシステムにリージョンディレクトリが存在しない場合、"assigns"コマンドはリージョンディレクトリを再作成します。 reported extra regions are overlapping with existing valid regions. // デフォルトの名前空間の下にあるテーブル'table_1'と'table_2'の余分なリージョンレポートをトリガーする例: If so, then "extraRegionsInMeta --fix" is indeed the optimal solution. // $ HBCK2 extraRegionsInMeta default:table_1 default:table_2 Otherwise, "assigns" command is the simpler solution, as it recreates // デフォルトの名前空間の下にあるテーブル'table_1'の欠落しているリージョンレポートと、名前空間'ns1'のすべてのテーブルの欠落しているリージョンレポートをトリガーする例: regions dirs in the filesystem, if not existing. // $ HBCK2 extraRegionsInMeta default:table_1 ns1 An example triggering extra regions report for tables 'table_1' // パラメータとして渡された各テーブル、またはパラメータとして指定された名前空間の各テーブルの余分なリージョンのリストを返します。 and 'table_2', under default namespace: $ HBCK2 extraRegionsInMeta default:table_1 default:table_2 An example triggering missing regions report for table 'table_1' under default namespace, and for all tables from namespace 'ns1': $ HBCK2 extraRegionsInMeta default:table_1 ns1 Returns list of extra regions for each table passed as parameter, or for each table on namespaces specified as parameter. filesystem [OPTIONS] [<TABLENAME>...] // filesystem [オプション] [<テーブル名>...] Options: -f, --fix sideline corrupt hfiles, bad links, and references. // 破損したhfile、不正なリンク、および参照を隔離します。 Report on corrupt hfiles, references, broken links, and integrity. // 破損したhfile、参照、壊れたリンク、および整合性について報告します。 Pass '--fix' to sideline corrupt files and links. '--fix' does NOT // 破損したファイルとリンクを隔離するには'--fix'を渡します。 fix integrity issues; i.e. 'holes' or 'orphan' regions. Pass one or // '--fix'は整合性の問題、つまり「穴」または「孤立した」リージョンを修正しません。 more tablenames to narrow checkup. Default checks all tables and // チェックアップを絞り込むために、1つ以上のテーブル名を渡します。 restores 'hbase.version' if missing. Interacts with the filesystem // デフォルトではすべてのテーブルをチェックし、欠落している場合は'hbase.version'を復元します。 only! Modified regions need to be reopened to pick-up changes. // ファイルシステムとのみ対話します! // 変更されたリージョンは、変更を取得するために再度開く必要があります。 fixMeta // fixMeta Do a server-side fix of bad or inconsistent state in hbase:meta. // hbase:metaの不正または不整合な状態をサーバー側で修正します。 Available in hbase 2.2.1/2.1.6 or newer versions. Master UI has // hbase 2.2.1/2.1.6以降のバージョンで利用可能です。 matching, new 'HBCK Report' tab that dumps reports generated by // マスターUIには、_catalogjanitor_の最新の実行によって生成されたレポートをダンプする新しい「HBCKレポート」タブと、新しい「HBCKチョア」があります。 most recent run of _catalogjanitor_ and a new 'HBCK Chore'. It // hbase:metaを最初に健全な状態にしてから、他の修復を行うことが重要です。 is critical that hbase:meta first be made healthy before making // 「穴」、「重複」などを修正し、hbase:metaに追加されたリージョンと一致するようにHDFSに(空の)リージョンディレクトリを作成します。 any other repairs. Fixes 'holes', 'overlaps', etc., creating // コマンドは、同じ名前の古い_hbck1_コマンドと同じではありません。 (empty) region directories in HDFS to match regions added to // 最後のcatalog_janitorおよびhbckチョアの実行によって生成されたレポートに対して機能します。 hbase:meta. Command is NOT the same as the old _hbck1_ command // 修正するものがない場合、実行はnoopです。 named similarily. Works against the reports generated by the last // そうでない場合、「HBCKレポート」UIに問題が報告されている場合、fixMetaを実行するとhbase:metaの問題が解消されます。 catalog_janitor and hbck chore runs. If nothing to fix, run is a // 新しい実行を生成する方法については、「HBase HBCK」UIを参照してください。 noop. Otherwise, if 'HBCK Report' UI reports problems, a run of // 詳細については、reportMissingRegionsInMetaを参照してください。 fixMeta will clear up hbase:meta issues. See 'HBase HBCK' UI for how to generate new execute. SEE ALSO: reportMissingRegionsInMeta generateMissingTableDescriptorFile <TABLENAME> // generateMissingTableDescriptorFile <テーブル名> Trying to fix an orphan table by generating a missing table descriptor // 欠落しているテーブル記述子ファイルを生成することにより、孤立したテーブルを修正しようとします。 file. This command will have no effect if the table folder is missing // テーブルフォルダがない場合、または.tableinfoが存在する場合(既存のテーブル記述子をオーバーライドしません)、このコマンドは効果がありません。 or if the .tableinfo is present (we don't override existing table // このコマンドは、最初にTableDescriptorがHBaseマスターにキャッシュされているかどうかを確認し、その場合はそれに応じて.tableinfoを回復します。 descriptors). This command will first check it the TableDescriptor is // TableDescriptorがマスターにキャッシュされていない場合は、次の項目を含むデフォルトの.tableinfoファイルを作成します。 cached in HBase Master in which case it will recover the .tableinfo // - テーブル名 accordingly. If TableDescriptor is not cached in master then it will // - ファイルシステムに基づいて決定された列ファミリのリスト create a default .tableinfo file with the following items: // - TableDescriptorとColumnFamilyDescriptorsの両方のデフォルトプロパティ - the table name // .tableinfoファイルがデフォルトパラメータを使用して生成された場合は、後でテーブル/列ファミリのプロパティを確認してください(必要に応じて変更してください)。 - the column family list determined based on the file system // このメソッドはHBaseの何も変更せず、新しい.tableinfoファイルをファイルシステムに書き込むだけです。 - the default properties for both TableDescriptor and // 孤立したテーブルは、たとえばServerCrashProceduresがスタックする原因となる可能性があります。欠落しているテーブル情報ファイルを生成した後でも、これらを修正する必要がある場合があります。 ColumnFamilyDescriptors If the .tableinfo file was generated using default parameters then make sure you check the table / column family properties later (and change them if needed). This method does not change anything in HBase, only writes the new .tableinfo file to the file system. Orphan tables can cause e.g. ServerCrashProcedures to stuck, you might need to fix these still after you generated the missing table info files. replication [OPTIONS] [<TABLENAME>...] // replication [オプション] [<テーブル名>...] Options: -f, --fix fix any replication issues found. // 見つかったレプリケーションの問題を修正します。 Looks for undeleted replication queues and deletes them if passed the // 削除されていないレプリケーションキューを探し、'--fix'オプションが渡された場合はそれらを削除します。 '--fix' option. Pass a table name to check for replication barrier and // レプリケーションバリアを確認し、'--fix'の場合はパージするためにテーブル名を渡します。 purge if '--fix'. reportMissingRegionsInMeta <NAMESPACE|NAMESPACE:TABLENAME>... // reportMissingRegionsInMeta <名前空間|名前空間:テーブル名>... To be used when regions missing from hbase:meta but directories // hbase:metaからリージョンが欠落しているが、ディレクトリがHDFSにまだ存在する場合に使用します。 are present still in HDFS. Can happen if user has run _hbck1_ // ユーザーがhbase-2.xクラスタに対して_hbck1_ 'OfflineMetaRepair'を実行した場合に発生する可能性があります。 'OfflineMetaRepair' against an hbase-2.x cluster. This is a CHECK only // これはチェック専用のメソッドであり、報告目的で設計されており、修正は行いません。 method, designed for reporting purposes and doesn't perform any // hbase:metaに再度追加されるリージョン(もしあれば)をそれぞれのテーブル/名前空間ごとにグループ化して表示します。 fixes, providing a view of which regions (if any) would get re-added // リージョンをメタに効果的に再度追加するには、addFsRegionsMissingInMetaを実行します。 to hbase:meta, grouped by respective table/namespace. To effectively // このコマンドでは、hbase:metaがオンラインである必要があります。 re-add regions in meta, run addFsRegionsMissingInMeta. // パラメータとして渡された各名前空間/テーブルについて、hbase:metaで利用可能なリージョンとHDFS上の既存のリージョンディレクトリとの差を実行します。 This command needs hbase:meta to be online. For each namespace/table // 一致しないリージョンディレクトリは、関連するテーブル名の下にグループ化されて出力されます。 passed as parameter, it performs a diff between regions available in // 欠落しているリージョンがないテーブルには、「欠落しているリージョンなし」というメッセージが表示されます。 hbase:meta against existing regions dirs on HDFS. Region dirs with no // 名前空間またはテーブルが指定されていない場合は、既存のすべてのリージョンが検証されます。 matches are printed grouped under its related table name. Tables with // 複数の名前空間とテーブルの組み合わせを受け入れます。 no missing regions will show a 'no missing regions' message. If no // テーブル名には、デフォルトの名前空間のテーブルであっても、名前空間の部分を含める必要があります。そうしないと、名前空間の値として想定されます。 namespace or table is specified, it will verify all existing regions. // デフォルトの名前空間の下にあるテーブル'table_1'と'table_2'の欠落しているリージョン実行をトリガーする例: It accepts a combination of multiple namespace and tables. Table names // $ HBCK2 reportMissingRegionsInMeta default:table_1 default:table_2 should include the namespace portion, even for tables in the default // デフォルトの名前空間の下にあるテーブル'table_1'の欠落しているリージョン実行と、名前空間'ns1'のすべてのテーブルの欠落しているリージョン実行をトリガーする例: namespace, otherwise it will assume as a namespace value. // $ HBCK2 reportMissingRegionsInMeta default:table_1 ns1 An example triggering missing regions execute for tables 'table_1' // パラメータとして渡された各テーブル、またはパラメータとして指定された名前空間の各テーブルの欠落しているリージョンのリストを返します。 and 'table_2', under default namespace: $ HBCK2 reportMissingRegionsInMeta default:table_1 default:table_2 An example triggering missing regions execute for table 'table_1' under default namespace, and for all tables from namespace 'ns1': $ HBCK2 reportMissingRegionsInMeta default:table_1 ns1 Returns list of missing regions for each table passed as parameter, or for each table on namespaces specified as parameter. setRegionState <ENCODED_REGIONNAME> <STATE> // setRegionState <エンコードされたリージョン名> <状態> To set the replica region's state, it needs the primary region's // レプリカリージョンの状態を設定するには、プライマリリージョンのエンコードされたリージョン名とレプリカIDが必要です。 encoded regionname and replica id. The command will be // コマンドは次のようになります。 setRegionState <PRIMARY_ENCODED_REGIONNAME>,<replicaId> <STATE> // setRegionState <プライマリエンコードされたリージョン名>,<replicaId> <状態> Possible region states: // 使用可能なリージョンの状態: OFFLINE, OPENING, OPEN, CLOSING, CLOSED, SPLITTING, SPLIT, // OFFLINE、OPENING、OPEN、CLOSING、CLOSED、SPLITTING、SPLIT、 FAILED_OPEN, FAILED_CLOSE, MERGING, MERGED, SPLITTING_NEW, // FAILED_OPEN、FAILED_CLOSE、MERGING、MERGED、SPLITTING_NEW、 MERGING_NEW, ABNORMALLY_CLOSED // MERGING_NEW、ABNORMALLY_CLOSED WARNING: This is a very risky option intended for use as last resort. // 警告:これは非常に危険なオプションであり、最後の手段として使用することを目的としています。 Example scenarios include unassigns/assigns that can't move forward // 例のシナリオには、リージョンが'hbase:meta'で不整合な状態になっているため先に進めないunassigns/assignsが含まれます。 because region is in an inconsistent state in 'hbase:meta'. For // たとえば、'unassigns'コマンドは、渡されたリージョンがSPLITTING | SPLIT | MERGING | OPEN | CLOSINGのいずれかの状態にある場合にのみ実行できます。 example, the 'unassigns' command can only proceed if passed a region // このコマンドでリージョンの状態を手動で設定する前に、このリージョンが'assign'や'split'などの実行中のプロシージャによって処理されていないことを確認してください。 in one of the following states: SPLITTING|SPLIT|MERGING|OPEN|CLOSING // hbaseシェルで'list_procedures'コマンドを使用して、実行中のプロシージャを表示できます。 Before manually setting a region state with this command, please // リージョン'de00010733901a05f5a2a3a382e2****'をCLOSINGに設定する例: certify that this region is not being handled by a running procedure, // $ HBCK2 setRegionState de00010733901a05f5a2a3a382e2**** CLOSING such as 'assign' or 'split'. You can get a view of running procedures // リージョンの状態が変更された場合は「0」、そうでない場合は「1」を返します。 in the hbase shell using the 'list_procedures' command. An example setting region 'de00010733901a05f5a2a3a382e2****' to CLOSING: $ HBCK2 setRegionState de00010733901a05f5a2a3a382e2**** CLOSING Returns "0" if region state changed and "1" otherwise. setTableState <TABLENAME> <STATE> // setTableState <テーブル名> <状態> Possible table states: ENABLED, DISABLED, DISABLING, ENABLING // 使用可能なテーブルの状態:ENABLED、DISABLED、DISABLING、ENABLING To read current table state, in the hbase shell run: // 現在のテーブルの状態を読み取るには、hbaseシェルで次を実行します。 hbase> get 'hbase:meta', '<TABLENAME>', 'table:state' // hbase> get 'hbase:meta', '<テーブル名>', 'table:state' A value of \x08\x00 == ENABLED, \x08\x01 == DISABLED, etc. // \x08\x00の値== ENABLED、\x08\x01 == DISABLEDなど。 Can also run a 'describe "<TABLENAME>"' at the shell prompt. // シェルプロンプトで'describe "<テーブル名>"'を実行することもできます。 An example making table name 'user' ENABLED: // テーブル名'user'をENABLEDにする例: $ HBCK2 setTableState users ENABLED // $ HBCK2 setTableState users ENABLED Returns whatever the previous table state was. // 以前のテーブルの状態が何であれ、それを返します。 scheduleRecoveries <SERVERNAME>... // scheduleRecoveries <サーバー名>... Schedule ServerCrashProcedure(SCP) for list of RegionServers. Format // RegionServersのリストに対してServerCrashProcedure(SCP)をスケジュールします。 server name as '<HOSTNAME>,<PORT>,<STARTCODE>' (See HBase UI/logs). // サーバー名は'<ホスト名>,<ポート>,<開始コード>'の形式で指定します(HBase UI/ログを参照)。 Example using RegionServer 'a.example.org,29100,1540348649479': // RegionServer 'a.example.org,29100,1540348649479'を使用した例: $ HBCK2 scheduleRecoveries a.example.org,29100,1540348649479 // $ HBCK2 scheduleRecoveries a.example.org,29100,1540348649479 Returns the pid(s) of the created ServerCrashProcedure(s) or -1 if // 作成されたServerCrashProcedureのpid、またはプロシージャが作成されなかった場合は-1を返します(理由はマスターログを参照)。 no procedure created (see master logs for why not). // コマンドのサポートは、hbaseバージョン2.0.3、2.1.2、2.2.0以降で追加されました。 Command support added in hbase versions 2.0.3, 2.1.2, 2.2.0 or newer. recoverUnknown // recoverUnknown Schedule ServerCrashProcedure(SCP) for RegionServers that are reported // 不明として報告されたRegionServersに対してServerCrashProcedure(SCP)をスケジュールします。 as unknown. // 作成されたServerCrashProcedureのpid、またはプロシージャが作成されなかった場合は-1を返します(理由はマスターログを参照)。 Returns the pid(s) of the created ServerCrashProcedure(s) or -1 if // コマンドのサポートは、hbaseバージョン2.2.7、2.3.5、2.4.3、2.5.0以降で追加されました。 no procedure created (see master logs for why not). Command support added in hbase versions 2.2.7, 2.3.5, 2.4.3, 2.5.0 or newer. unassigns <ENCODED_REGIONNAME>... // unassigns <エンコードされたリージョン名>... Options: -o,--override override ownership by another procedure // 別のプロシージャによる所有権をオーバーライドする A 'raw' unassign that can be used even during Master initialization // マスターの初期化中にも使用できる「raw」割り当て解除(-skipフラグが指定されている場合)。 (if the -skip flag is specified). Skirts Coprocessors. Pass one or // コプロセッサを回避します。 more encoded region names. 1588230740 is the hard-coded name for the // 1つ以上のエンコードされたリージョン名を渡します。 hbase:meta region and de00010733901a05f5a2a3a382e2**** is an example // 1588230740はhbase:metaリージョンのハードコードされた名前であり、de00010733901a05f5a2a3a382e2****はユーザースペースのエンコードされたリージョン名の例です。 of what auserspace encoded region name looks like. For example: // 例: $ HBCK2 unassigns 1588230740 de00010733901a05f5a2a3a382e2**** // $ HBCK2 unassigns 1588230740 de00010733901a05f5a2a3a382e2**** Returns the pid(s) of the created UnassignProcedure(s) or -1 if none. // 作成されたUnassignProcedureのpid、または何もない場合は-1を返します。 SEE ALSO, org.apache.hbase.hbck1.OfflineMetaRepair, the offline // オフラインhbase:metaツールであるorg.apache.hbase.hbck1.OfflineMetaRepairも参照してください。 hbase:meta tool. See the HBCK2 README for how to use. // 使用方法については、HBCK2 READMEを参照してください。 regionInfoMismatch // regionInfoMismatch Options: // オプション: -f,--fix Update hbase:meta with the corrections // -f,--fix 修正でhbase:metaを更新する It is recommended to first run this utility without the fix // このユーティリティが正しいシリアル化されたRegionInfoデータ構造を生成していることを確認するために、最初に修正オプションなしでこのユーティリティを実行することをお勧めします。 option to ensure that the utility is generating the correct // 出力を調べて、hbase:metaの行キーが新しいRegionInfoと一致することを確認します。 serialized RegionInfo data structures. Inspect the output to // このツールはhbase:metaを読み取り、行キーとセル値のエンコードされたリージョン名が異なるリージョンを報告します。 confirm that the hbase:meta rowkey matches the new RegionInfo. // HBASE-23328は、行キーと値の間でエンコードされたリージョン名(MD5ハッシュ)が一致しない、読み取りレプリカが有効になっているテーブルの問題を示しています。 This tool will read hbase:meta and report any regions whose rowkey // この問題は、通常の操作では一般的に無害ですが、他のHBCK2ツールを壊す可能性があります。 and cell value differ in their encoded region name. HBASE-23328 // このバグの影響を受けるリージョンがあるかどうかを判断するには、このコマンドを実行し、-f / --fixオプションを使用して影響を受けるリージョンを修正します。 illustrates a problem for read-replica enabled tables in which the encoded region name (the MD5 hash) does not match between the rowkey and the value. This problem is generally harmless for normal operation, but can break other HBCK2 tools. Run this command to determine if any regions are affected by this bug and use the -f/--fix option to then correct any affected regions.