次の方法で共有


クイック スタート: Apache Phoenix を使用して Azure HDInsight の Apache HBase にクエリを実行する

このクイックスタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法について説明します。 Apache Phoenix は、Apache HBase の SQL クエリ エンジンです。 これは JDBC ドライバーとしてアクセスされ、SQL を使用して HBase テーブルのクエリと管理を行うことができます。 SQLLine は、SQL を実行するためのコマンド ライン ユーティリティです。

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

[前提条件]

ZooKeeper ノードを識別する

HBase クラスターに接続するときは、いずれかの Apache ZooKeeper ノードに接続する必要があります。 各 HDInsight クラスターには、3 つの ZooKeeper ノードがあります。 Curl を使用すると、ZooKeeper ノードをすばやく識別できます。 PASSWORDCLUSTERNAMEを関連する値に置き換えて、以下の curl コマンドを編集し、コマンド プロンプトでコマンドを入力します。

curl -u admin:PASSWORD -sS -G https://CLUSTERNAME.azurehdinsight.net/api/v1/clusters/CLUSTERNAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER

出力の一部は次のようになります。

    {
      "href" : "http://hn*.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net:8080/api/v1/clusters/myCluster/hosts/<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net/host_components/ZOOKEEPER_SERVER",
      "HostRoles" : {
        "cluster_name" : "myCluster",
        "component_name" : "ZOOKEEPER_SERVER",
        "host_name" : "<zookeepername1>.432dc3rlshou3ocf251eycoapa.bx.internal.cloudapp.net"
      }

後で使用するために、 host_name の値を書き留めておきます。

テーブルを作成してデータを操作する

SSH を使用して HBase クラスターに接続し、Apache Phoenix を使用して HBase テーブルの作成、データの挿入、データのクエリを実行できます。

  1. sshコマンドを使用して HBase クラスターに接続します。 CLUSTERNAMEをクラスターの名前に置き換えて、次のコマンドを編集し、コマンドを入力します。

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Phoenix クライアントにディレクトリを変更します。 次のコマンドを入力します。

    cd /usr/hdp/current/phoenix-client/bin
    
  3. SQLLine を起動します。 ZOOKEEPERを先ほど識別した ZooKeeper ノードに置き換えて、次のコマンドを編集し、コマンドを入力します。

    ./sqlline.py ZOOKEEPER:2181:/hbase-unsecure
    
  4. HBase テーブルを作成します。 次のコマンドを入力します。

    CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));
    
  5. SQLLine !tables コマンドを使用して、HBase 内のすべてのテーブルを一覧表示します。 次のコマンドを入力します。

    !tables
    
  6. テーブルに値を挿入します。 次のコマンドを入力します。

    UPSERT INTO Company VALUES(1, 'Microsoft');
    UPSERT INTO Company VALUES(2, 'Apache');
    
  7. テーブルのクエリを実行します。 次のコマンドを入力します。

    SELECT * FROM Company;
    
  8. レコードを削除します。 次のコマンドを入力します。

    DELETE FROM Company WHERE COMPANY_ID=1;
    
  9. テーブルを削除します。 次のコマンドを入力します。

    DROP TABLE Company;
    
  10. SQLLine !quit コマンドを使用して SQLLine を終了します。 次のコマンドを入力します。

    !quit
    

リソースをクリーンアップする

このクイックスタートを完了したら、必要に応じてクラスターを削除できます。 HDInsight では、データは Azure Storage に格納されるため、クラスターが使用されていない場合は安全に削除できます。 HDInsight クラスターが使用されていない場合でも、料金が発生します。 クラスターの料金はストレージの料金の何倍も多いため、クラスターが使用されていない場合は削除するのが経済的に理にかなっています。

クラスターを削除するには、 ブラウザー、PowerShell、または Azure CLI を使用して HDInsight クラスターを削除する方法に関するページを参照してください

次のステップ

このクイック スタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法について説明しました。 Apache Phoenix の詳細については、次の記事で詳しく説明します。