

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Hive で HBase テーブルにアクセスする
<a name="emr-hbase-access-hive"></a>

HBase と [Apache Hive](emr-hive.md) は、緊密に統合されているため、HBase に格納されたデータに対して並列処理の大量ワークロードを直接実行できます。HBase と共に Hive を使用するには、通常は同じクラスターでこれらを起動します。ただし Hive と HBase を別々のクラスターで起動することもできます。HBase と Hive を別々のクラスターに切り離して実行すると、各アプリケーションがクラスターのリソースをより効率的に使用できるため、パフォーマンスが向上する可能性があります。

次の手順は、Hive を使用してクラスターの HBase に接続する方法を説明します。

**注記**  
Hive クラスターは 1 つの HBase クラスターにのみ接続できます。

**Hive を HBase に接続するには**

1. Hive と HBase がインストールされた別々のクラスターを作成するか、HBase と Hive の両方インストールされている 1 つのクラスターを作成します。

1. 別々のクラスターを使用する場合は、2 つのプライマリノード間で HBase と Hive のポートが開くように、セキュリティグループを変更します。

1. SSH を使用して、Hive がインストールされているクラスターのプライマリノードに接続します。詳細については、「*Amazon EMR 管理ガイド*」の「[Connect to the primary node using SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)」を参照してください。

1. 次のコマンドで Hive シェルを起動します。

   ```
   hive
   ```

1. (オプション) HBase と Hive が同一のクラスターにある場合、これを行う必要はありません。Hive クラスターの HBase クライアントを、データが含まれる HBase クラスターに接続します。次の例の *public-DNS-name* は、HBase クラスターのプライマリノードのパブリック DNS 名に置き換えます (例: `ec2-50-19-76-67.compute-1.amazonaws.com`)。

   ```
   set hbase.zookeeper.quorum=public-DNS-name;
   ```

1. 必要に応じて、HBase データに対して Hive クエリを実行するか、次の手順に進みます。

**Hive から HBase データにアクセスするには**
+  Hive クラスターと HBase クラスターの間の接続が確立されたら（前述の手順を参照）、Hive に外部テーブルを作成することで、HBase クラスターに格納されているデータにアクセスできます。

  次の例では、プライマリノードでの Hive プロンプトからの実行時に、`inputTable` という HBase テーブルに格納されているデータを参照する外部テーブルを作成しています。その後、Hive ステートメントで `inputTable` を参照し、HBase クラスターに格納されているデータに対してクエリを実行したり、そのデータを変更したりできます。

  ```
  set hbase.zookeeper.quorum=ec2-107-21-163-157.compute-1.amazonaws.com;
  
  create external table inputTable (key string, value string)
       stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
        with serdeproperties ("hbase.columns.mapping" = ":key,f1:col1")
        tblproperties ("hbase.table.name" = "t1");
  
  select count(key) from inputTable ;
  ```

HBase と Hive を組み合わせたより高度なユースケースと例については、 AWS Big Data Blog の投稿[「Buin NoSQL and massively parallel analytics using Apache HBase and Apache Hive on Amazon EMR](https://aws.amazon.com/blogs/big-data/combine-nosql-and-massively-parallel-analytics-using-apache-hbase-and-apache-hive-on-amazon-emr)」を参照してください。