Apache HBase について説明する

完了

Apache HBase は、Apache Hadoop 上に構築されるオープンソースの NoSQL データベースです。 HBase では、大量の非構造化データと半構造化データに対するランダム アクセスと厳密な整合性が、列ファミリで整理されたスキーマなしのデータベースで実現されます。 HDInsight 4.0 HBase クラスターには、Apache HBase 2.1.6 と Apache Phoenix 5 が付属しています。

ユーザーから見ると、HBase はデータベースに似ています。 データはテーブルの行および列内に格納され、行内のデータは列ファミリによってグループ化されます。 HBase は、列や列内に格納されるデータの型を使用前に定義する必要がないという意味で、スキーマレス データベースです。 オープン ソース コードは、直線的な拡張により何千ものノード上でペタバイト級のデータを扱うことができます。

HBase には次のような固有の特徴があります

  • 整合性のある読み取りと書き込み

  • 低遅延の操作

  • 自動シャーディング

  • リージョン サーバーの自動フェールオーバー

  • Hadoop、HDFS、MapReduce の統合

  • Java クライアント API

  • Java 以外のフロントエンドに対する Thrift と REST のサポート

  • ブロック キャッシュとブルーム フィルター

Azure HDInsight HBase と Apache Phoenix を併用すると、さらに次のような利点があります

  • SQL および NoSQL のインターフェイス

  • 柔軟な容量計画

  • Azure ネットワークによるグローバルな分散とレプリケーション

  • コンピューティングとストレージの分離

  • HDInsight Enterprise のセキュリティ機能との緊密な統合

  • 非常に低遅延での読み取りと書き込みのための HDInsight HBase の高速書き込み

  • クエリなどのリアルタイム SQL のための Apache Phoenix

Azure HDInsight と HBase を使用すると、NoSQL データベースを大規模に実行することができます。 Contoso のデータ エンジニアは、ミッション クリティカルな運用シナリオにプラットフォームを使用する前に、ベンチマーク テストを実行して、HDInsight HBase のパフォーマンスとスケールを理解する必要があります。

HDInsight の HBase では、コンピューティングとストレージが個別に実行されます。 HDInsight HBase クラスターは、Azure Storage にデータを直接格納するよう構成されるため、低遅延が実現され、パフォーマンスとコストをいっそう弾力的に選択できます。 この特徴により、お客様は大規模なデータセットで動作する対話型の Web サイトを構築できます。 何百万ものエンドポイントからのセンサーやテレメトリのデータを格納するサービスを構築したり、Hadoop ジョブでこのデータを分析したりすることができます。 Azure でビッグ データ プロジェクトを初めて作成するときは、HBase と Hadoop が適しています。 これらのサービスを使用すると、リアルタイム アプリケーションで大規模なデータセットを処理できます。 HDInsight HBase の実装では、HBase のスケールアウト アーキテクチャを使用して、テーブルの自動シャーディングが実現されます。 また、読み取りと書き込みに関する厳密な整合性と、自動フェールオーバーも提供されます。 また、メモリ内キャッシュを利用した読み取りと高スループットのストリーミングによる書き込みによって、パフォーマンスも拡張されています。 仮想ネットワーク内に HBase クラスターを作成することができます。 詳細については、Azure Virtual Network での HDInsight クラスターの作成に関する記事を参照してください。

HBase architecture

あなたはデータ エンジニアとして、ソリューションを構築するために作成する HDInsight クラスターの最適な種類を判断する必要があります。 直線的に拡大する NoSQL データベース用に HDInsight で HBase クラスターを使用して、大量のスループットを実現し、わずかなコストで低遅延の読み取りと無制限のストレージを提供します。

HDInsight で HBase を使用する主なシナリオには、次のようなものがあります。

キー値ストア

一般に、HBase はキー値ストアとして使用され、メッセージ システムの管理に適しています。

センサー データ

HBase は、さまざまなソースから増分的に収集されるデータをキャプチャする場合に便利です。これには、ソーシャル分析、時系列、傾向やカウンターが含まれる対話型ダッシュボードの最新の状態の維持、監査ログ システムの管理などが含まれます。

リアルタイム クエリ

Apache Phoenix は、Apache HBase 用の SQL クエリ エンジンです。 JDBC ドライバーとしてアクセスされ、SQL を使用して HBase テーブルの照会と管理を行うことができます。

プラットフォームとしての HBase

HBase をデータストアとして使用することで、アプリケーションは HBase の最上層で実行できます。 たとえば、Phoenix、OpenTSDB、Kiji、Titan などがあります。 アプリケーションを HBase と統合することもできます。 たとえば、Apache Hive、Apache Pig、Solr、Apache Flume、Apache Impala、Apache Spark、Ganglia、Apache Drill などがあります。

HDInsight では、HBase を、スタンドアロン アプリケーションとして使用することも、Spark、Hadoop、Hive、Kafka などの他のビッグ データ分析アプリケーションと共にデプロイすることもできます。

HBase in the context of a Lambda architecture

HBase のデータ モデルには、さまざまなデータ型を持ち、列サイズとフィールド サイズが変化する、半構造化データが格納されます。 HBase データ モデルのレイアウトにより、データのパーティション分割とクラスター全体への分散が容易になります。 HBase のデータ モデルは、行キー、列ファミリ、テーブル名、タイムスタンプなど、複数の論理コンポーネントで構成されています。

行キーは、HBase テーブル内の行を一意に識別するために使用されます。 HDInsight では、HBase REST、HBase RPC、Phoenix Query Server、HBase 一括読み込みなどの複数の利用可能な API を使用して、HBase にデータを直接書き込むことも、Apache Spark、Hive などのビッグ データ フレームワークとの統合を利用することもできます。

HBase の高速書き込み機能を利用して、高い書き込みスループットを実現できます。 HBase のアーキテクチャとベスト プラクティスの詳細については、HBase のドキュメントを参照してください。