More Related Content
Similar to 20分でわかるHBase (20)
20分でわかるHBase
- 2. アジェンダ
• HBaseとは
• HBaseのデータ構造
• HBaseのテーブル構造とアーキテクチャ
• リージョン分割〜HBaseにおけるシャーディン
グ〜
• アーキテクチャから見るHBaseの使い方
• ???
- 3. お前誰よ?
• Sho
Shimauchi
(
@shiumachi
)
• Cloudera
の問い合わせ担当
• ここ最近で一番衝撃的だった問い合わせは、
私の個人ブログの内容について説明してほし
いというもの(しかも4年前の記事)
- 4. HBase
本日本語訳出ました
• Cloudera
の
Lars
George
が書いた HBase
のバイ
ブル
• 訳は安心の玉川さん
• レビュー手伝ってました
• 今日話すことは全部こ
の「馬本」に書いてます
- 6. HBase
とは
• 分散DB
• 列ファミリ指向DB
• ソートマップDB
• キーバリューストア
- 18. HBaseのアーキテクチャ
• RegionServer
– リージョンを管理する
• Zookeeper
– リージョンサーバの配置や管理テーブルの配置
など、HBaseの中核情報を管理する
• HMaster
– データそのものは扱わず、管理情報を収集し管
理インタフェースを提供する
- 20. リージョンの位置を知るには?
• .META.
テーブル
– リージョンサーバとリージョンのマップ情報
– クライアントは
.META.
テーブルに問い合せて場所を
確認
• ROOT
テーブル
– .META.
の場所をポイントするだけのテーブル
– クライアントはROOTテーブルを見て.META.テーブル
を探す
– ROOTテーブルの場所はZooKeeperに保存されている
- 29. リージョンAにアクセスする場合
クライアント
ZooKeeper
ようやくアクセスできた!
場所はキャッシュしたので、
もうZooKeeperや管理テー
ブルを見る必要はない!
リージョンサーバ1
リージョンサーバ2
ROOT
.META.
リージョンA
- 33. リージョン分割
このリージョンは大きくなり
すぎたので分割しよう
リージョンサーバ
リージョンサーバ
リージョン
- 35. リージョン分割
分割したうちの片方は他の
リージョンサーバに渡そう
リージョンサーバ
リージョンサーバ
リージョン
リージョン
- 39. 行キー設計
• ランダムかシーケンシャルか
• ランダムアクセス重視
– 書き込みをリージョンで散らす
– 行キーをハッシュにしてしまうなど
• シーケンシャル重視
– スキャン(一括取得)したい場合など
– 行キーを並べておく
- 42. 今日話したこと
• HBaseのデータ構造(キーバリュー)
• HBaseのアーキテクチャ
• リージョンの考え方
• スキーマ・行キー設計
- 43. 今日話していないこと(一部)
• 先行書き込みログ
– HBaseが壊れてもデータが残っていることを保証
• メムストア
– メモリキャッシュのようなもの
• フラッシュとコンパクション
• HBase
API
– Java
– Thri
(python
もあるよ)
– REST
– hbase
shell
(jruby
ベースのインタラクティブシェル)
• フィルタ
• コプロセッサ
• HBCK
• MapReduce
• データのインポート・エクスポートツール
- 45. まとめ
• HBase
を使うことはそんなに難しくありません
– 少なくとも自力でシャーディングするよりマシ
• 性能を引き出そうとすればそれなりの知識が
必要です
– 他の技術も同じ
• 正しく活用して、高速かつスケーラブルな
HBaseをエンジョイしましょう!