Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Phoenix クライアント - Amazon EMR

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

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

Phoenix クライアント

Phoenix には、完全な依存関係によって構築された JDBC クライアント、または Phoenix クエリサーバーを使用しクラスターのマスターノードでのみ実行される「シンクライアント」を使用して接続します (例: SQL クライアント、ステップ、コマンドライン、SSH ポート転送などを使用)。「ファット」 JDBC クライアントを使用している場合は、HBase サービスに直接接続するため、クラスターのすべてのノードにアクセスできる必要があります。「シン」Phoenix クライアントでは、Phoenix クエリサーバーにデフォルトポート 8765 でアクセスできる必要のみがあります。Phoenix には、これらのクライアントを使用するスクリプトがいくつかあります。

Phoenix を使用したクエリでの Amazon EMR ステップの使用

次の手順は、HBase からスナップショット復元し、そのデータを使用して Phoenix クエリを実行します。必要に応じてこの例を拡張するか、Phoenix クライアントを利用する新しいスクリプトを作成できます。

  1. 次のコマンドを使用して、Phoenix がインストールされた状態でクラスターを作成します。

    aws emr create-cluster --name "Cluster with Phoenix" --log-uri s3://amzn-s3-demo-bucket/myLogFolder --release-label emr-7.7.0 \ --applications Name=Phoenix Name=HBase --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge --instance-count 3 --use-default-roles
  2. 次のファイルを作成して、Amazon S3 にアップロードします。

    copySnapshot.sh

    sudo su hbase -s /bin/sh -c 'hbase snapshot export \ -D hbase.rootdir=s3://us-east-1.elasticmapreduce.samples/hbase-demo-customer-data/snapshot/ \ -snapshot customer_snapshot1 \ -copy-to hdfs://masterDNSName:8020/user/hbase \ -mappers 2 -chuser hbase -chmod 700'

    runQuery.sh

    aws s3 cp s3://amzn-s3-demo-bucket/phoenixQuery.sql /home/hadoop/ /usr/lib/phoenix/bin/sqlline-thin.py http://localhost:8765 /home/hadoop/phoenixQuery.sql

    phoenixQuery.sql

    注記

    Amazon EMR versions 5.26.0 以降を使用する場合は、以下の例に COLUMN_ENCODED_BYTES=0 を含めるだけです。

    CREATE VIEW "customer" ( pk VARCHAR PRIMARY KEY, "address"."state" VARCHAR, "address"."street" VARCHAR, "address"."city" VARCHAR, "address"."zip" VARCHAR, "cc"."number" VARCHAR, "cc"."expire" VARCHAR, "cc"."type" VARCHAR, "contact"."phone" VARCHAR) COLUMN_ENCODED_BYTES=0; CREATE INDEX my_index ON "customer" ("customer"."state") INCLUDE("PK", "customer"."city", "customer"."expire", "customer"."type"); SELECT "customer"."type" AS credit_card_type, count(*) AS num_customers FROM "customer" WHERE "customer"."state" = 'CA' GROUP BY "customer"."type";

    を使用して S3 バケットにファイル AWS CLI を送信します。

    aws s3 cp copySnapshot.sh s3://amzn-s3-demo-bucket/ aws s3 cp runQuery.sh s3://amzn-s3-demo-bucket/ aws s3 cp phoenixQuery.sql s3://amzn-s3-demo-bucket/
  3. ステップ 1 で作成したクラスターに送信された以下の手順を使用してテーブルを作成します。

    createTable.json

    [ { "Name": "Create HBase Table", "Args": ["bash", "-c", "echo $'create \"customer\",\"address\",\"cc\",\"contact\"' | hbase shell"], "Jar": "command-runner.jar", "ActionOnFailure": "CONTINUE", "Type": "CUSTOM_JAR" } ]
    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps file://./createTable.json
  4. script-runner.jar を使用して、先に S3 バケットにアップロードした copySnapshot.sh スクリプトを実行します。

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="HBase Copy Snapshot",ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/copySnapshot.sh"]

    これは MapReduce ジョブを実行してスナップショットデータをクラスターの HDFS にコピーします。

  5. 次のステップを使用して、クラスターにコピーしたスナップショットを復元します。

    restoreSnapshot.json

    [ { "Name": "restore", "Args": ["bash", "-c", "echo $'disable \"customer\"; restore_snapshot \"customer_snapshot1\"; enable \"customer\"' | hbase shell"], "Jar": "command-runner.jar", "ActionOnFailure": "CONTINUE", "Type": "CUSTOM_JAR" } ]
    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps file://./restoreSnapshot.json
  6. script-runner.jar を使用して、先に S3 バケットにアップロードした runQuery.sh スクリプトを実行します。

    aws emr add-steps --cluster-id j-2AXXXXXXGAPLF \ --steps Type=CUSTOM_JAR,Name="Phoenix Run Query",ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/runQuery.sh"]

    クエリが実行され、ステップの stdout に結果が返ります。このステップが完了するには数分間かかる場合があります。

  7. ステップ 1 でクラスターを作成したときに使用したログ URI でステップの stdout の結果を確認します。結果は次のようになります。

    +------------------------------------------+-----------------------------------+ | CREDIT_CARD_TYPE | NUM_CUSTOMERS | +------------------------------------------+-----------------------------------+ | american_express | 5728 | | dankort | 5782 | | diners_club | 5795 | | discover | 5715 | | forbrugsforeningen | 5691 | | jcb | 5762 | | laser | 5769 | | maestro | 5816 | | mastercard | 5697 | | solo | 5586 | | switch | 5781 | | visa | 5659 | +------------------------------------------+-----------------------------------+
プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.