外部 MySQL データベースまたは Amazon Aurora の使用 - Amazon EMR

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

外部 MySQL データベースまたは Amazon Aurora の使用

外部 MySQL データベースまたは Amazon Aurora を Hive メタストアとして使用するには、Hive のメタストアのデフォルトの設定値を上書きして、Amazon RDS MySQL インスタンスまたは Amazon Aurora P のいずれかで外部データベースの場所を指定しますostgreSQLinstance。

注記

Hive では、メタストアテーブルに対する同時書き込みアクセスのサポートも防止も行いません。2 つのクラスター間でメタストア情報を共有する場合は、同じメタストアテーブルに同時に書き込まないようにします (同じメタストアテーブルの異なるパーティションに書き込む場合は除きます)。

次の手順では、Hive メタストアの場所として設定したデフォルト値を上書きし、新しく設定したメタストアの場所を使用してクラスターを起動する方法を示します。

EMR クラスターの外部にあるメタストアを作成するには
  1. MySQL または Aurora PostgreSQL データベースを作成します。Postgre を使用する場合はSQL、クラスターをプロビジョニングした後に設定する必要があります。クラスターの作成時にサポートされるのは My SQLのみです。Aurora MySQL と Aurora Postgre の違いについてはSQL、「Amazon Aurora My の概要SQL」と「Amazon Aurora Postgre の使用SQL」を参照してください。Amazon RDS データベースを作成する一般的な方法については、「」を参照してくださいhttps://aws.amazon.com/rds/

  2. セキュリティグループを変更して、データベースと ElasticMapReduce-Master セキュリティグループ間のJDBC接続を許可します。アクセスのためにセキュリティグループを変更する方法については、「Amazon マネージドセキュリティグループの使用EMR」を参照してください。

  3. JDBC で設定値を設定しますhive-site.xml

    重要

    パスワードなどの機密情報を Amazon EMR設定 に提供するとAPI、十分なアクセス許可を持つアカウントに対してこの情報が表示されます。この情報が表示される可能性があるという懸念がある場合は、管理アカウントを使用してクラスターを作成し、 elasticmapreduce:DescribeCluster API キーへのアクセス許可を明示的に拒否するロールを作成して、他のユーザー (IAM ユーザーまたは委任された認証情報を持つユーザー) をクラスター上のサービスへのアクセスに制限します。

    1. 次の例のように、hiveConfiguration.json の編集を含む hive-site.xml という設定ファイルを作成します。

      置換 hostname データベースを実行している Amazon RDSインスタンスのDNSアドレス、および username また、password データベースの認証情報を入力します。MySQL および Aurora データベースインスタンスへの接続の詳細については、「Amazon ユーザーガイド」の「MySQL データベースエンジンを実行している DB インスタンスへの接続」および「Athena DB クラスターへの接続」を参照してください。 javax.jdo.option.ConnectionURLはメタストアJDBCの接続文字列です。 JDBC はJDBCメタストアのドライバークラス名javax.jdo.option.ConnectionDriverNameです。 RDS

      MySQL JDBCドライバーは Amazon によってインストールされますEMR。

      値のプロパティには、スペースや改行を含めることはできません。すべてを 1 行にする必要があります。

      [ { "Classification": "hive-site", "Properties": { "javax.jdo.option.ConnectionURL": "jdbc:mysql://hostname:3306/hive?createDatabaseIfNotExist=true", "javax.jdo.option.ConnectionDriverName": "org.mariadb.jdbc.Driver", "javax.jdo.option.ConnectionUserName": "username", "javax.jdo.option.ConnectionPassword": "password" } } ]
    2. 次の AWS CLI コマンドに示すように、クラスターの作成時に hiveConfiguration.json ファイルを参照します。このコマンドでは、ファイルはローカルに保存されます。ファイルを Amazon S3 にアップロードし、そこで参照することもできます (例: s3://DOC-EXAMPLE-BUCKET/hiveConfiguration.json)。

      注記

      読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

      aws emr create-cluster --release-label emr-7.2.0 --instance-type m5.xlarge --instance-count 2 \ --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
  4. クラスターのプライマリノードに接続します。

    プライマリノードに接続する方法については、「Amazon EMR 管理ガイド」の「 を使用してプライマリノードSSHに接続する」を参照してください。

  5. 次のようなコマンドを入力することにより、Amazon S3 上の場所を指定して Hive テーブルを作成します。

    CREATE EXTERNAL TABLE IF NOT EXISTS table_name ( key int, value int ) LOCATION s3://DOC-EXAMPLE-BUCKET/hdfs/
  6. 実行中のクラスターに Hive スクリプトを追加します。

Hive クラスターは、Amazon にあるメタストアを使用して実行されますRDS。このメタストアを共有する他の Hive クラスターはすべて、メタストアの場所を指定して起動します。