NHNカンファレンスでもらったHBaseの本を、ざっと斜め読みして、適当にまとめるシリーズ「HBaseを読む」の続きです。
ちゃんとした情報を知りたい人は、HBaseの本を見てください。
今回は、1.4章後半と1.5章
1.4.4 ストレージAPI
ストレージAPI
テーブルや列ファミリの生成/削除
テーブルや列ファミリのメタデータの変更
→圧縮、ブロックサイズ
値の生成や削除
行キーに対する値の取得
スキャンAPI
指定した範囲の行に対する繰り返し処理を効率的に
セルのバージョン数制限
フィルターを使って列をマッチ
特定の期間内のバージョンを得られる
→開始時間と終了時間を指定して
より高度な機能
単一行に対するトランザクション
単一の行キーの下で保存されているデータに対する
読み出し-変更-書き込みの
アトミックなシーケンス
セルの値:アトミックに更新できる
カウンターとして解釈
クライアントから提供したコードをサーバーで実行
コプロセッサ
軽量なバッチジョブの実装
様々な演算子に基づくデータの解釈や集約
バージョン0.91からHBaseへ
MapReduceフレームワークと結合されている
アクセスは、クライアント側のAPIを通じて、純粋に命令的に行われる
1.4.5 実装
HFile:データ保存用のファイル群
キーと値からなる永続化された順序つきの
イミュータブルなMap
内部的にはブロックの並び
ブロックのインデックスが末尾に保存
デフォルトのブロックサイズは64K
APIを提供
特定の値にアクセスするAPIや
指定された開始及び終了キーの範囲内にある値をスキャンするAPI
すべてのHFileにはブロックインデックスがある
→ルックアップを行うのに必要なシークは1回だけ
保存用のファイル:通常HDFSに保存
更新されたデータ
コミットログに書き込まれる
→HBaseではこのログをライトアヘッドログ(WAL)と呼ぶ
メモリ内のmemstoreに保存され
最大値を超えると、HFileとしてディスク書き出し
→memstoreは交代制
新しいmemstore:更新受付
古いmemstore:ファイルに変換
memstore内のデータは、キーでソート済み
ローカリティの性質
関連しあうデータを一緒に纏めておくには、キーを指定しないといけない
保存用のファイル
イミュータブル
削除:削除マーカー(墓石マーカー)が書かれる
データを読み出しなおす:memstoreの保存内容のマージ
WALは使われない(サーバークラッシュのとき使う)
コンパクション
memstoreのディスク書き出し→多量のHFile→1つのファイルにする
2種類
マイナーコンパクション
メジャーコンパクション
メジャーコンパクション
すべのキー、値ペアがスキャン
削除エントリを削除マーカー含め消去
predicate deletes処理
このアーキテクチャ:LMSツリーから
バックグラウンドで実行されるコンパクション
→LMSツリーのマージ
HBaseの構成
クライアントライブラリ
1つのマスターサーバー
多くのリージョンサーバー
マスターサーバー
リージョンの割当に責任
高い信頼性と可用性
→永続化分散強調サービスのApache ZooKeeper利用
リージョンのロードバランシングの調整
クラスタの状態管理
メタデータの処理:
→スキーマ変更、テーブル・列ファミリの生成
リージョンサーバー
リージョンに対する読み書きリクエスト
リージョンの分割
コラム:Apache ZooKeeper
GoogleのChubbyに相当
所有権の調停、サービスの登録、更新の監視
リージョンサーバー:一時ノードを作成
マスターサーバー:利用可能なサーバの検索
HBaseでは、以下の目的にも利用
動作中のマスターが1つしなかい確認
開始地点の保存
リージョンサーバーの登録
1.4.6 まとめ
Bigdataのストレージアーキテクチャ:ペタバイト級までスケール
列指向のアーキテクチャ→HBaseの強力な一貫性
マルチバージョニング
1.5 HBase:Hadoopデータベース
1.5.1 歴史
2006年11月 Bigtableの論文
2007年 2月 HBaseの初期プロトタイプ
2011年 1月 HBase0.90.0リリース
2011年 中頃 0.92.0リリース
HBaseの開発者たち:Hadoopと歩調を合わせるのをやめた
→0.20.xから0.89.xという明らかなジャンプ
1.5.2 用語
HBaseとBigtableでことなる
・リージョン(tablet)、
マイナーコンパクション・フラッシュ
ライトアヘッドログ(コミットログ)
Memstore(memtable)
HFile(SSTable)
Zookeeper(Chubby)
など
1.5.3 まとめ
HBase
・一貫性をもつ永続的ストレージシステム
・列ファミリ:圧縮
・柔軟なセカンダリインデックス
・Push-down predication
・行のアトミック性と読み出し-修正-書き込み
・スケーラビリティははじめから考慮
・バランス取り直し、シャード:自動化
来週から2章。
2章以降は、もっと手を抜いていきます。
ちゃんとした情報を知りたい人は、HBaseの本を見てください。
今回は、1.4章後半と1.5章
1.4.4 ストレージAPI
ストレージAPI
テーブルや列ファミリの生成/削除
テーブルや列ファミリのメタデータの変更
→圧縮、ブロックサイズ
値の生成や削除
行キーに対する値の取得
スキャンAPI
指定した範囲の行に対する繰り返し処理を効率的に
セルのバージョン数制限
フィルターを使って列をマッチ
特定の期間内のバージョンを得られる
→開始時間と終了時間を指定して
より高度な機能
単一行に対するトランザクション
単一の行キーの下で保存されているデータに対する
読み出し-変更-書き込みの
アトミックなシーケンス
セルの値:アトミックに更新できる
カウンターとして解釈
クライアントから提供したコードをサーバーで実行
コプロセッサ
軽量なバッチジョブの実装
様々な演算子に基づくデータの解釈や集約
バージョン0.91からHBaseへ
MapReduceフレームワークと結合されている
アクセスは、クライアント側のAPIを通じて、純粋に命令的に行われる
1.4.5 実装
HFile:データ保存用のファイル群
キーと値からなる永続化された順序つきの
イミュータブルなMap
内部的にはブロックの並び
ブロックのインデックスが末尾に保存
デフォルトのブロックサイズは64K
APIを提供
特定の値にアクセスするAPIや
指定された開始及び終了キーの範囲内にある値をスキャンするAPI
すべてのHFileにはブロックインデックスがある
→ルックアップを行うのに必要なシークは1回だけ
保存用のファイル:通常HDFSに保存
更新されたデータ
コミットログに書き込まれる
→HBaseではこのログをライトアヘッドログ(WAL)と呼ぶ
メモリ内のmemstoreに保存され
最大値を超えると、HFileとしてディスク書き出し
→memstoreは交代制
新しいmemstore:更新受付
古いmemstore:ファイルに変換
memstore内のデータは、キーでソート済み
ローカリティの性質
関連しあうデータを一緒に纏めておくには、キーを指定しないといけない
保存用のファイル
イミュータブル
削除:削除マーカー(墓石マーカー)が書かれる
データを読み出しなおす:memstoreの保存内容のマージ
WALは使われない(サーバークラッシュのとき使う)
コンパクション
memstoreのディスク書き出し→多量のHFile→1つのファイルにする
2種類
マイナーコンパクション
メジャーコンパクション
メジャーコンパクション
すべのキー、値ペアがスキャン
削除エントリを削除マーカー含め消去
predicate deletes処理
このアーキテクチャ:LMSツリーから
バックグラウンドで実行されるコンパクション
→LMSツリーのマージ
HBaseの構成
クライアントライブラリ
1つのマスターサーバー
多くのリージョンサーバー
マスターサーバー
リージョンの割当に責任
高い信頼性と可用性
→永続化分散強調サービスのApache ZooKeeper利用
リージョンのロードバランシングの調整
クラスタの状態管理
メタデータの処理:
→スキーマ変更、テーブル・列ファミリの生成
リージョンサーバー
リージョンに対する読み書きリクエスト
リージョンの分割
コラム:Apache ZooKeeper
GoogleのChubbyに相当
所有権の調停、サービスの登録、更新の監視
リージョンサーバー:一時ノードを作成
マスターサーバー:利用可能なサーバの検索
HBaseでは、以下の目的にも利用
動作中のマスターが1つしなかい確認
開始地点の保存
リージョンサーバーの登録
1.4.6 まとめ
Bigdataのストレージアーキテクチャ:ペタバイト級までスケール
列指向のアーキテクチャ→HBaseの強力な一貫性
マルチバージョニング
1.5 HBase:Hadoopデータベース
1.5.1 歴史
2006年11月 Bigtableの論文
2007年 2月 HBaseの初期プロトタイプ
2011年 1月 HBase0.90.0リリース
2011年 中頃 0.92.0リリース
HBaseの開発者たち:Hadoopと歩調を合わせるのをやめた
→0.20.xから0.89.xという明らかなジャンプ
1.5.2 用語
HBaseとBigtableでことなる
・リージョン(tablet)、
マイナーコンパクション・フラッシュ
ライトアヘッドログ(コミットログ)
Memstore(memtable)
HFile(SSTable)
Zookeeper(Chubby)
など
1.5.3 まとめ
HBase
・一貫性をもつ永続的ストレージシステム
・列ファミリ:圧縮
・柔軟なセカンダリインデックス
・Push-down predication
・行のアトミック性と読み出し-修正-書き込み
・スケーラビリティははじめから考慮
・バランス取り直し、シャード:自動化
来週から2章。
2章以降は、もっと手を抜いていきます。