第2回HBase勉強会 #hbaseworkshop
自宅HBaseクラスタの紹介。次いでデータモデルの紹介。GoogleのBigTableを参考にしている。 #hbaseworkshop
2011-06-16 19:08:20HBaseのデータモデルは多重Mapっぽい。物理ファイルはColumnFamily毎に分かれて保存されている。これが複数集まってリージョンを作る。リージョンはローキーでSortされている。ある一定サイズになると分割されて増える #hbaseworkshop
2011-06-16 19:10:14バージョンの数は固定だから、Mapというか配列という感じなのかな。 Map<ColumnFamilyName, Map<KeyName, Value[]>> #hbaseworkshop
2011-06-16 19:10:44ACID特性。同一RowをモツデータであればATOMICに操作する事が出来る。複数キーにまたがった場合は保証出来ない #hbaseworkshop
2011-06-16 19:11:07もしHBaseで本気でトランザクションやるなら分散ロックを組む。或いはZooKeeperでロックを取る事も出来るけど、基本的にやるな。ユースケースでやってもいいんじゃね #hbaseworkshop
2011-06-16 19:11:55複数のRowに対するロックは取れない。ZooKeeper使って分散トランザクションてのもあるけど、、、というお話。#hbaseworkshop
2011-06-16 19:12:03CFがでかすぎて、リージョンファイルの分割上限こえたらどうなるのか。無限compactionが働いてしまう(((( ;゚Д゚)))ガタガタガタブルブル・・・。という事は1データはリージョンファイルサイズの上限を超えたら駄目? #hbaseworkshop
2011-06-16 19:14:57Q. ZooKeeperクラスタが壊れたら、全部落ちるのか、どういう挙動をとるのか? #hbaseworkshop
2011-06-16 19:16:40ZooKeeperが死んでいるとそもそも接続できない。無限にリトライするとのこと。#hbaseworkshop
2011-06-16 19:17:33ちげぇマスターノードの場所をしる RT @yutuki_r: HBaseの操作。Clientは最初にZKに繋いでRootサーバの場所を知る #hbaseworkshop #hbaseworkshop
2011-06-16 19:18:00クライアントはZooKeeperにRootリージョンを問い合せて、そこからリージョンサーバに接続する。メタデータはクライアントがキャッシュする。#hbaseworkshop
2011-06-16 19:18:25一度問い合わせたマスタサーバの位置等の情報はクライアントがcacheする。クライアントがぷっとするとcommitLogつくってメモリにデータ保存。いっぱいになるとHDDに保存 #hbaseworkshop
2011-06-16 19:18:46