このクイックスタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法について説明します。 Apache Phoenix は、Apache HBase の SQL クエリ エンジンです。 これは JDBC ドライバーとしてアクセスされ、SQL を使用して HBase テーブルのクエリと管理を行うことができます。 SQLLine は、SQL を実行するためのコマンド ライン ユーティリティです。
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
[前提条件]
Apache HBase クラスター。 クラスターを作成してHDInsightクラスターを作成する方法を参照してください。 HBase クラスターの種類を選択してください。
SSH クライアント。 詳細については、 SSH を使用した HDInsight (Apache Hadoop) への接続に関する記事を参照してください。
ZooKeeper ノードを識別する
HBase クラスターに接続するときは、いずれかの Apache ZooKeeper ノードに接続する必要があります。 各 HDInsight クラスターには、3 つの ZooKeeper ノードがあります。 Curl を使用すると、ZooKeeper ノードをすばやく識別できます。
PASSWORDとCLUSTERNAMEを関連する値に置き換えて、以下の 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 テーブルの作成、データの挿入、データのクエリを実行できます。
sshコマンドを使用して HBase クラスターに接続します。CLUSTERNAMEをクラスターの名前に置き換えて、次のコマンドを編集し、コマンドを入力します。ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.netPhoenix クライアントにディレクトリを変更します。 次のコマンドを入力します。
cd /usr/hdp/current/phoenix-client/binSQLLine を起動します。
ZOOKEEPERを先ほど識別した ZooKeeper ノードに置き換えて、次のコマンドを編集し、コマンドを入力します。./sqlline.py ZOOKEEPER:2181:/hbase-unsecureHBase テーブルを作成します。 次のコマンドを入力します。
CREATE TABLE Company (company_id INTEGER PRIMARY KEY, name VARCHAR(225));SQLLine
!tablesコマンドを使用して、HBase 内のすべてのテーブルを一覧表示します。 次のコマンドを入力します。!tablesテーブルに値を挿入します。 次のコマンドを入力します。
UPSERT INTO Company VALUES(1, 'Microsoft'); UPSERT INTO Company VALUES(2, 'Apache');テーブルのクエリを実行します。 次のコマンドを入力します。
SELECT * FROM Company;レコードを削除します。 次のコマンドを入力します。
DELETE FROM Company WHERE COMPANY_ID=1;テーブルを削除します。 次のコマンドを入力します。
DROP TABLE Company;SQLLine
!quitコマンドを使用して SQLLine を終了します。 次のコマンドを入力します。!quit
リソースをクリーンアップする
このクイックスタートを完了したら、必要に応じてクラスターを削除できます。 HDInsight では、データは Azure Storage に格納されるため、クラスターが使用されていない場合は安全に削除できます。 HDInsight クラスターが使用されていない場合でも、料金が発生します。 クラスターの料金はストレージの料金の何倍も多いため、クラスターが使用されていない場合は削除するのが経済的に理にかなっています。
クラスターを削除するには、 ブラウザー、PowerShell、または Azure CLI を使用して HDInsight クラスターを削除する方法に関するページを参照してください。
次のステップ
このクイック スタートでは、Apache Phoenix を使用して Azure HDInsight で HBase クエリを実行する方法について説明しました。 Apache Phoenix の詳細については、次の記事で詳しく説明します。