web-dev-qa-db-ja.com

シェルを介してHBaseテーブルのリージョンをリストする方法は?

Web UIに表示されるテーブルのリージョンに関する同じ情報(つまり、リージョン名、リージョンサーバー、開始/終了キー、ローカリティ)をhbaseシェルから取得したいと思います。

(UIは不安定で遅いです。さらに、この情報をスクリプトの一部として処理したいと思います。)

多くのグーグルの後、私はどのように見つけることができません、そしてこれは私を非常に驚かせます。バージョンは1.0.0.-cdh5.4.0です

15
Kevin Pauli

テーブルに関する地域情報を取得するには、hbase:meta テーブル。

scan 'hbase:meta',{FILTER=>"PrefixFilter('table_name')"}

このコマンドは、すべての地域の詳細を表示します。行キーには地域名があり、4つの列修飾子があります。次の2つの列修飾子が必要になる場合があります。

info:regioninfo-この修飾子には、STARTKEYとENDKEYが含まれます。

info:server-この修飾子には地域サーバーの詳細が含まれます

34
Maddy RS

HBaseメーリングリストからの応答は次のとおりです。

ステータス「詳細」には、十分な情報が表示されます。

t1,30,1449175546660.da5f3853f6e59d1ada0a8554f12885ab." 
  numberOfStores=1, numberOfStorefiles=0, 
  storefileUncompressedSizeMB=0, lastMajorCompactionTimestamp=0, 
  storefileSizeMB=0, memstoreSizeMB=0, storefileIndexSizeMB=0, 
  readRequestsCount=0, writeRequestsCount=0, rootIndexSizeKB=0, 
  totalStaticIndexSizeKB=0, totalStaticBloomSizeKB=0, totalCompactingKVs=0, 
  currentCompactedKVs=0, compactionProgressPct=NaN, completeSequenceId=-1, 
  dataLocality=0.0 

ただし、これはallテーブルから情報を返すので、興味のあるテーブルの領域を解析する必要があります。

3
Kevin Pauli

hbase hbckと呼ばれる、テーブルのリカバリと一貫性のチェックに使用されるhbaseのツールがあります。ただし、これはhbaseシェル内では実行されませんが、リージョンのリストを取得するために使用できます。

コマンド hbase hbck -details <tablename>は、テーブルの詳細を取得するために使用でき、必要な地域情報が含まれます。

上記のコマンドの出力を解析して、必要なテーブルの領域情報を取得できます。

1
Nishant Goyal

「公式」list_regionsすべてのリージョンをリストするシェルコマンド。このツールは、HBaseバージョン1.4以降からのみ使用可能です。

Some examples are 
        Examples:
        hbase> list_regions 'table_name'
        hbase> list_regions 'table_name', 'server_name'
        hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8}
        hbase> list_regions 'table_name', {SERVER_NAME => 'server_name', LOCALITY_THRESHOLD => 0.8}, ['SERVER_NAME']
        hbase> list_regions 'table_name', {}, ['SERVER_NAME', 'start_key']
        hbase> list_regions 'table_name', '', ['SERVER_NAME', 'start_key']

実装の詳細は次のとおりです。 https://issues.Apache.org/jira/browse/HBASE-14925

1
LearningToCode