基本情報
概要
Apache Hbase(アパッチ エイチベース)とは、大規模分散データベース管理システムです。「Hadoopベース」「NoSQL」「スケーラブル」などの特徴があります。
基本説明
Apache Hbaseは、分散データ処理基盤「Apache Hadoop」上で動作し、分散型のスケーラブルなデータストアです。
大容量データセットに対して高速ランダムアクセス機能を提供します。
経緯
Apache Hbaseは、Apacheトップレベルプロジェクトとして開発されています。
主な特徴
Google「BigTable」モデル
HadoopやHBaseは、Googleの大規模分散処理基盤「BigTable」をモデルにして開発されています。
「Hadoop」ベース
Apache Hbaseは、Hadoopクラスタ上に構築され、データはHDFS(Hadoop Distributed File System)に格納されます。
Hadoopのエコシステムを活用することにより、「MapReduceジョブ機能」などを使用でき、「データ冗長性」などについても確保できます。
データモデル
HBaseでは、多次元要素キー(行キー、列キー、タイムスタンプなど)で、データが一意に定まります。
キーを動的に定義できることにより、データ構造変更や格納データ種類追加に対応可能です。非構造データやスパースデータ(まばらなデータ)にも対応できます。
HBase構成
HBaseクラスタは以下の要素で構成されます。
・メタデータ管理「Master」
・構成情報管理「Apache ZooKeeper」
・データ格納処理「Region Server」
スケーラブル
Apache Hbaseは、「非常な大きな規模まで拡張が可能なアーキテクチャ」であることが大きな特徴です。サーバ台数を増やすことで拡張できます。データサイズ、処理負荷、パフォーマンス要件に応じてデータベースの水平拡張が可能です。
実運用で6Pバイト以上のデータを格納している例もあります。
負荷分散(シャーディング)
格納されたデータは自動的に分割され、キーのグループを「リージョン」という単位で複数の「リージョンサーバ」に格納します。リージョン分割やリージョンリバランスも自動で行えます。
リージョン単位で格納されたデータに対して並列処理を実行することで、システム全体のパフォーマンスが向上します。
高速性
HBaseは「LSM-Tree」という仕組みで、主にメモリ上で処理を行うことにより、高速性を獲得しています。
データ一貫性
HBaseは「強い一貫性」を維持できます。
あるデータの書き込み後、以降の読み出しでは書き込まれたデータが読み出されることを保証します。
高可用性(自動フェイルオーバー)
HBaseでは「ZooKeeper」が各ノードの死活監視を行っています。クラスタ内のいずれかのノードに障害が発生した場合、「ZooKeeper」は障害ノードをクラスタから切り離します。
その時点で、自動的に機能がフェールオーバーされ、可用性が維持されます。
セキュリティ
Kerberos認証により「テーブル単位」「列(カラム)単位」でのセキュリティ設定が可能です。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Apache Cassandra」「Hypertable」など。
導入事例
「Facebook」「米Yahoo!」「米Flurry」などへの導入実績があります。
ライセンス情報
Apache Hbaseのライセンスは「Apache License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
参考元サイト
・Wikipedia →Apache HBase
・あしたのオープンソース研究所 →Apache HBase とは
・ZDNet Japan →NoSQL「HBase」はIoTにも最適--柔軟なスキーマでデータ構造の変更に対応
・Cloudera →Apache HBase
・@IT →カラム指向型データベース(HBase、Hypertable、Cassandra)編
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。