HBaseとはどんなNoSQLデータベースなのか? 日本語で読める情報を集めてみた
Facebookが新しいサービス「Messages」の基盤として、NoSQLデータベースの「HBase」を選択したことを、先日の記事「Facebookが新サービスの基盤にしたのは、MySQLでもCassandraでもなく、HBaseだった」で紹介しました。
HBaseは、Facebookによると次のような特徴を備えていると説明されてます。
- 負荷に対して非常に高いスケーラビリティと性能を発揮
- CassandraよりもシンプルなConsistency Model(一貫性モデル)を備えている
- 自動ロードバランス、フェイルオーバー、圧縮機能
- サーバーごとに数十個のシャードを割り当て可能、などなど
このHBaseはどのようなデータベースなのでしょうか? 情報を集めてみました。
HBase入門のプレゼンテーション
最初に紹介するのは「HBaseエバンジェリスト」Tatsuya Kawano氏のプレゼンテーション「Apache HBase 入門 (第1回)(SlideShare)」です。HBaseを理解するために分かりやすく情報が整理されています。
いくつかのスライドを引用しましょう。HBaseの特徴は、グーグルのBigTableを参考に、HadoopのHDFS上に構築されたデータベース。
数十億件のデータ、数百ノードの分散システムではHBaseの出番。自動シャーディング、柔軟性のあるテーブル構造などの機能を備える。
自動シャーディング機能。テーブルはリージョンに自動的に分割され、リージョンはワーカーノードにランダムに割り当てられる。テーブル構造は柔軟で、行を書き込むときに自由にカラムを追加できる。データ型はByte配列。
強い一貫性を備え、更新前の古いデータが見えることはない。
第1回に続き「Apache HBase 入門 (第2回)(SlideShare)」も公開されています。
MySQLのような一般的なデータベースでは、read性能が重視されていますが、HBaseではwrite性能の方が重視されていると。
そのHBaseのwriteの動作は、リージョンサーバのメモリにバッファリングされ、一定サイズに達したらディスクへ書き込み。
リージョンサーバがダウンしたときにメモリ内のデータが失われないように、コミットログも記録するとのこと。
第3回の資料「Apache HBase 入門 (第3回)(PDF)」も公開されています。第3回では、第2回の後半で触れられていたHBaseとCassandraの設計上の違いについて解説されています。
- Apache HBase 入門 (第1回)(SlideShare)
- Apache HBase 入門 (第2回)(SlideShare)
- Apache HBase 入門 (第3回)(PDF)
HBaseとCassandraの違い
NoSQLデータベースでよく知られるCassandraとHBaseのアーキテクチャの違いにフォーカスを当て、それぞれを詳しく解説したのが豊月(ゆつき)氏(@yutuki_r)氏のプレゼンテーション「CassandraとHBaseの比較して入門するNoSQL」です。
NoSQLデータベースとはどのようなものなのか? という解説からKVS、CAP定理の紹介と続き、アーキテクチャの解説へと入っていきます。HBaseとCassandraのアーキテクチャが同時に理解できて、とてもためになる資料です。この資料からもポイントを2枚だけ引用します。
BigTable、HBase、Cassandra、Dynamoの4つの代表的なNoSQLデータベースの違い。
HBaseがどのような要素で構成されているか。
HBaseを試してみる
Gihyo.jpに掲載された連載「 NoSQLデータベースを試してみる」の「第5回 大規模データを扱うためのHBaseとCassandra」は、HBaseのインストール、試す方法などが紹介されていますので、自分で試すときに役に立つ記事でしょう。
CodeZineの記事「 Hadoop、hBaseで構築する大規模分散データ処理システム 」は、グーグルのBigTable、Hadoopなどの説明からHBaseまでを取り扱っており、概要を把握することができます。
そのほか、以下のWebサイトでHBaseの情報を扱っています。
HBaseの書籍とコミュニティ
HBaseについて専門に解説した書籍はまだ登場していませんが、オライリーの書籍「Hadoop」の中で、12章が「HBase」の解説となっています。HBaseの基礎とデータモデル、そしてLinuxへのインストールと基本的な使い方やデータ操作の方法などが記されています。
Hadoopの基礎から応用までを包括的に解説。Hadoopの分散ファイルシステムHDFSやI/Oの効率化の仕組み、MapReduceについて詳しく解説します。後半ではHDFSと MapReduceを実行するためのHadoopクラスタの立ち上げと管理など。(目次)
またHBaseのコミュニティも「Hadoopユーザー会」となり、メーリングリストもGoogle Groupsの中に「Hadoopユーザー会」 として存在しています。
この記事は、HBaseエバンジェリストのTatsuya Kawano氏から情報を提供してもらいました。ありがとうございました。
参考:FacebookがHBaseを大規模リアルタイム処理に利用している理由(前編)
参考:FacebookがHBaseを大規模リアルタイム処理に利用している理由(後編)
参考:Google、HBase API互換のCloud Bigtableを公開、Googleの基盤で使われてきたNoSQLデータベースが利用可能に。Cloud Datastoreとの違いは?