こんにちは。
落合です。
昨日、HBase勉強会(第二回)に参加しました。
コアな話が聞けて非常におもしろかったです。
特に、業務系システムへの適用に関する議論の盛り上がりがすごい。
HBase、アツいです。
私自身も最近、
仕事でHBaseのクラスタも組み始めているのですが、
より効果的な設定、サーバ構成、使い方はやはり気になるところですね。
勉強会の中で出た、HBaseの注意点を挙げてみます
■ZooKeeper は単体で動かす
反応が悪くなることがあるので、
他のノードと同じマシン上では動かさないほうがよい。
■ZooKeeper は奇数台
ちなみに、ZooKeeper が3台で動いているときには、
分散合意で過半数を取った意見が採用されますが、
1台が落ちると、
残った2台のサーバの意見が一致したときに分散合意が有効となるそうです。
さらにもう1台が落ちて、
動いているのが1台だけになると、
HBaseが動かなくなります。
■Hadoopのバージョンとの相性に注意
HBaseを使う場合は、Hadoopの0.20.1のappendブランチを使う事。
フラッシュ時にデータが消える可能性がある。
Hadoop 0.21系 は、appendブランチとは別の回避策が施されているのでOK。
とりあえずCDH3を使っていれば安心。
■メジャーコンパクションは負荷の少ない時間にcronで実行がおすすめ
自動定期実行をOFFにして、
cronで実行しメジャーコンパクションをコントロールするのがよい。
突然遅くなる事態を回避できる。
■複数のRowキーにまたがったデータの操作では、Atomicity は保証されない
同じRowキーを持つデータに対しては保証されるようです。
■HBaseクラスタ上でMapReduceを動かすべきか
議論がわかれるところ。
業務系システムへの利用
その他、というかメインは、
業務系システムでの利用を考えた際の、
HBaseの課題、有効な使い方について。
しかし議論についていけず・・・。
伝票処理、受発注処理、引当処理と言われてもいまいちピンとこないな、と。
勉強が必要ですね。
今度は議論に加われるようなネタを用意して、
また参加したいです。