3

5つのノードのクラスターがあり、その上にHBaseでいくつかのテーブルを作成し、データを入力しました。ノードの1つに障害が発生し、HBase上のすべてのテーブルを一覧表示できるようになりましたが、2つのテーブルをスキャンまたは無効にすると

NativeException: org.apache.hadoop.hbase.client.NoServerForRegionException: No server address listed in .META. for region TableName,,1295871604968

このテーブルを削除したいのですが、この問題を乗り越えることができません。これにはhbaseシェルを使用しています。

4

5 に答える 5

2

.META.エラーが発生したテーブルのテーブルエントリを削除してから、テーブルを再作成することで問題を解決しました。.META.テーブルは、デッドノード上のリージョンに場所を保存し、ノードが停止したときに何らかの理由でリージョンの場所を更新できなかったと思います。エントリが削除された後、テーブルを再作成することができました。私はここでそれについての議論を見つけました。それは私を正しい道に導くのに役立ちます。

于 2011-01-28T10:01:56.810 に答える
1

ノードを再起動することは可能ですか?

HBaseは、リージョンを他のノードに再配布する必要があります。これが起こらなかった理由はおそらくいくつかありますが、頭の中で考えられるのは、HDFSが破損していることです。これは、データノードにレプリケーションがない場合(またはレプリケーションがノード障害の数を下回った場合)に発生する可能性があります。ファイルシステムを確認してください(hadoop fsck /)

また、使用しているhbaseとhadoopのバージョンを一覧表示すると便利です。可能であれば、hadoop 0.20-appendブランチ(CDH3に含まれる)を使用してHBaseバージョン0.90に移行します

于 2011-01-26T16:22:31.487 に答える
0

同様の問題が発生しましたが、ノードがダウンしていなかったことを誓います。ただし、それがどのように発生したかに関係なく(まだよくわからないため)、どのように修正したかによって、混乱したテーブルのスナップショットを取り、そのスナップショットからテーブルを再作成しました。

scan 'mytable'
ERROR: No server address listed in hbase:meta for region mytable,,1408136497251.5110a0bae8315ed52af93663401ab415. containing row

テーブルがメタテーブルで混乱していても、データは混乱しておらず、新しいスナップショットを作成してドロップし、クローンを作成することができました。

snapshot 'mytable', 'mytable-Snapshot-2014-08-25'
disable 'mytable'
drop 'mytable'
clone_snapshot 'mytable-Snapshot-2014-08-25', 'mytable'
于 2014-08-25T16:42:01.500 に答える
0

試す

フラッシュ'.META。'

major_compact'.META。'

hbaseシェルで、テーブルをもう一度スキャンしてみてください。

于 2017-01-05T15:32:49.177 に答える
0

私たちの場合、誰かが誤ってテーブルの1つを「無効」状態のままにしたときに、このエラーが発生していました。これにより、テーブルのリージョンが0になり、「hbase:metaにサーバーアドレスがリストされていません」という結果になりました。修正は、それが無効になっていることを認識してから、再度有効にすることでした。

hbase is_disabled 'table name'

hbase enable 'table name'

于 2018-02-13T12:34:54.840 に答える