HBase0.20 テーブル生成・削除の欠点

7
Fumiya Chiba @fchiba

消したはずのテーブルが残っていて、しかもgetもdisableもできなくなった。調べてみるとRegionServerからは消えているのに、.META.に残っていたのげ原因っぽい。なんでこんなことになるんだ??? #hbase

2010-10-29 22:26:08
Tatsuya Kawano @tatsuya6502

バージョンはいくつですか? RT @fchiba: 消したはずのテーブルが残っていて、しかもgetもdisableもできなくなった。調べてみるとRegionServerからは消えているのに、.META.に残っていたのげ原因っぽい。なんでこんなことになるんだ??? #hbase

2010-10-30 00:15:07
Fumiya Chiba @fchiba

@tatsuya6502 0.20.6をlinxu上で単独環境で動かしています。Jobのテストの際に同名のテーブルの生成・削除を繰り返しているのですが、それが引き金になったのではないかと考えています。ビルドサーバー(Hudsonで全テストを何度も回している)だけで起きているので。

2010-10-30 01:16:07
Tatsuya Kawano @tatsuya6502

@fchiba なるほど。METAテーブルの内容は(他のテーブルと同様)に HBase Region Serverのシャットダウン時に、ディスクにflushされます。HDFSのappendが無効な設定で flushが終わる前にRSのJVMが止まると不整合が起きます。

2010-10-30 02:21:25
Tatsuya Kawano @tatsuya6502

@fchiba HBase はテスト中、立ち上げっぱなしですか?それとも、HBase 自身のUnit Testのように、テストが動いているJVMに埋め込んで、テストと一緒に起動・停止してますか?

2010-10-30 02:28:14
Tatsuya Kawano @tatsuya6502

@fchiba テーブルの生成・削除で不安定になるのは 0.20.x の設計上の欠点なので、HMasterがリライトされている HBase 0.90 でないと完全には直らないかもしれません。0.20.x だと、リージョン数が増えたときに、disableできなくなることがあります。

2010-10-30 02:29:25
Fumiya Chiba @fchiba

@tatsuya6502 HBaseは上げっぱなしでテストしています。ログを見る限りRSが落ちた形跡は無いので、なんらかの不具合を踏んでしまった可能性がありそうですね。

2010-10-30 11:07:41
Tatsuya Kawano @tatsuya6502

@fchiba はい、不具合の可能性もありますね。起こったのは1回だけですか? 再現するようなら本家のMLできいてみようかと思います。

2010-10-31 19:39:54
Fumiya Chiba @fchiba

@tatsuya6502 何回か発生していたのですが、削除する前に数秒ウェイトをいれて、しばらく様子を見ていたところ、その後は再発しなくなりました。 せっかくなのでシンプルな再現コードを作ろうと思ったのですが、単純に生成・削除を高速に繰り返すだけでは再現しませんでした。

2010-11-04 15:23:25
Fumiya Chiba @fchiba

.@tkihira とここ数日格闘しているHadoop / HBaseの性能&メモリ問題は、OSのライトキャッシュが原因の一因か。ディスクがRead80MB/sに比べてWrite25MB/sと遅いせいか、ライトキャッシュにデータが溜まりやすい。

2010-11-04 15:30:45
Fumiya Chiba @fchiba

Javaのほうでいっぱいキャッシュ持ってるんだから、ダイレクトIOってわけにはいかないのかな。

2010-11-04 15:32:10