10

私は奇妙な問題に直面しています。API を介して HBase テーブルにアクセスしていました。実行中の途中で、テーブル 'x' の RegionNotServing を取得しました。しかし、私の HRegionServers は正常に動作していました。

HBase Shell からテーブルを一覧表示しようとしたときに、テーブル 'x' が見つかりませんでした。テーブル 'x' を無効にしようとすると、TableNotEnabledException がスローされ、テーブル 'x' を有効にしようとすると、TableNotDisabledException がスローされました。

私が得た例外が添付されています:

hbase(main):002:0> disable 'x'

ERROR: org.apache.hadoop.hbase.TableNotEnabledException: org.apache.hadoop.hbase.TableNotEnabledException: x
        at org.apache.hadoop.hbase.master.handler.DisableTableHandler.<init>(DisableTableHandler.java:75)
        at org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1154)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
        at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)

Here is some help for this command:
Start disable of named table: e.g. "hbase> disable 't1'"


hbase(main):003:0> enable 'x'

ERROR: org.apache.hadoop.hbase.TableNotDisabledException: org.apache.hadoop.hbase.TableNotDisabledException: x
        at org.apache.hadoop.hbase.master.handler.EnableTableHandler.<init>(EnableTableHandler.java:74)
        at org.apache.hadoop.hbase.master.HMaster.enableTable(HMaster.java:1142)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:364)
        at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1336)

Here is some help for this command:
Start enable of named table: e.g. "hbase> enable 't1'"


hbase(main):004:0> 
4

5 に答える 5

18

以前にも同様の問題がありました。問題は、Zookeeper がテーブルを保持していたためです。そのため、以下の手順に従ってテーブルを手動で削除しました

  1. hbase zkcliコマンドを使用してhbasezookeperクライアントモードに入ります
  2. コマンドを使用してテーブルを削除しますdelete /hbase/table/x
于 2013-01-28T08:12:45.870 に答える
0

この問題が発生したばかりで、地域サーバーが稼働しているが、何らかの理由で到達できないことが判明しました。これを試してデバッグするのではなく、地域サーバーを再起動すると、すべてが修正されました。

イベントの順序:

  1. 地域サーバーが報告されたが到達できないという悪い状態になることが起こった
  2. その地域サーバーが悪い状態にある間にテーブルを無効にしようとしました(当時は私には知られていませんでした)。RPC タイムアウト エラーが発生しました
  3. テーブルを削除しようとしましたが、「テーブルが有効になっていないか無効になっています」というエラーが発生しました。HBase UI は、そのテーブルの「不明な」圧縮ステータスを報告していました
  4. 特定の地域のサーバーに到達できないという失敗した一括読み込みジョブに気付きました
  5. 地域サーバーを再起動しました
  6. HBase UI は、圧縮のためにテーブルを「なし」として報告するようになり、有効化/無効化/ドロップはシェルで機能しました
于 2015-06-12T15:16:29.420 に答える