すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:HBase へのアクセス

最終更新日:Mar 27, 2026

E-MapReduce (EMR) を使用すると、クラスター作成時に HBase クラスターの設定を構成でき、シェルまたはビッグデータフレームワーク経由で HBase にアクセスできます。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • HBase サービスが追加された EMR クラスター。詳細については、「クラスターの作成」をご参照ください。

HBase クラスターの構成

クラスター作成時に HBase の設定をカスタマイズします。ソフトウェア設定 ステップで、詳細設定 を展開し、カスタムソフトウェア設定 を有効化したうえで、以下の JSON 形式で構成内容を指定します。

{
  "configurations": [
    {
      "classification": "hbase-site",
      "properties": {
        "hbase.hregion.memstore.flush.size": "268435456",
        "hbase.regionserver.global.memstore.size": "0.5",
        "hbase.regionserver.global.memstore.lowerLimit": "0.6"
      }
    }
  ]
}

以下の表に、一般的な HBase パラメーターのデフォルト値を示します。

パラメーター デフォルト値 調整が必要な場合
zookeeper.session.timeout 180000 高負荷時に ZooKeeper のセッションタイムアウトが頻繁に発生する場合は、値を増加させます。
hbase.regionserver.global.memstore.size 0.35 書き込み負荷の高いワークロードでは、フラッシュ前により多くのデータをメモリに保持するために値を増加させます(例: 0.5)。また、lowerLimit の値は、この値より小さく設定する必要があります。
hbase.regionserver.global.memstore.lowerLimit 0.3 hbase.regionserver.global.memstore.size の値より小さい値を設定し、強制フラッシュが発生する前の余裕(ヘッドルーム)を確保します。
hbase.hregion.memstore.flush.size 128 MB 短時間の書き込みバーストが発生するワークロードでは、バースト中のすべての書き込みをメモリに保持し、まとめてフラッシュすることで I/O オーバーヘッドを削減するために値を増加させます。JSON のサンプル例における値(268435456)は 256 MB に相当します。

HBase Shell へのアクセス

  1. お使いのクラスターのマスターノードに SSH 経由で接続します。「クラスターへのログイン」を参照してください。

  2. HBase Shell を起動します。

    hbase shell

    正常に起動した場合、以下と同様の出力が表示されます。SLF4J のバインディング警告は想定される動作であり、機能に影響しません。

    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/apps/ecm/service/hbase/1.4.9-1.0.0/package/hbase-1.4.9-1.0.0/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/apps/ecm/service/hadoop/2.8.5-1.5.3/package/hadoop-2.8.5-1.5.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    HBase Shell
    Use "help" to get list of supported commands.
    Use "exit" to quit this interactive shell.
    Version 1.4.9, r8214a16c5d80f077abf1aa01bb312851511a2b15, Thu Jan 31 20:35:22 CST 2019
    
    hbase(main):001:0>
  3. 基本的な HBase Shell コマンドを実行して、接続の確認およびデータの探索を行います。テーブルの作成 次のコマンドでは、contacts という名前のテーブルを、personal および office の 2 つのカラムファミリーとともに作成します。

    hbase(main):001:0> create 'contacts', 'personal', 'office'

    データの書き込み

    hbase(main):002:0> put 'contacts', '1000', 'personal:name', 'John Dole'
    hbase(main):003:0> put 'contacts', '1000', 'personal:phone', '1-425-000-0001'
    hbase(main):004:0> put 'contacts', '1000', 'office:phone', '1-425-000-0002'
    hbase(main):005:0> put 'contacts', '1000', 'office:address', '1111 San Gabriel Dr.'

    データの読み取り

    hbase(main):006:0> get 'contacts', '1000'

    テーブルのスキャン

    hbase(main):007:0> scan 'contacts'

    テーブルの削除

    hbase(main):008:0> disable 'contacts'
    hbase(main):009:0> drop 'contacts'

    利用可能なすべてのコマンドを表示するには help を実行し、HBase Shell を終了するには exit を実行します。

説明 HBase Shell の使用EMR クラスターではなく ECS コンソールで作成したインスタンスを使用している場合は、「」をご参照のうえ、ApsaraDB for HBase Standard Edition クラスターにアクセスしてください。

ビッグデータフレームワークからの HBase アクセス

Spark を使用した HBase アクセス

Spark ジョブで HBase テーブルの読み取りおよび書き込みを行うには、spark-hbase-connector ライブラリを使用します。

Hadoop を使用した HBase アクセス

HBase データの処理には MapReduce を使用します。「HBase MapReduce のサンプル」で完全なコード例をご確認ください。

Hive を使用した HBase アクセス

  1. Hive クラスターのマスターノードにログインし、ZooKeeper ノードの IP アドレスを hosts ファイルに追加します。$zk_ip は、HBase クラスター内の ZooKeeper ノードの実際の IP アドレスに置き換えてください。

    $zk_ip emr-cluster
  2. Hive と HBase の統合」ガイドに従って、統合を完了します。