翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
外部の MySQL データベースまたは Amazon Aurora の使用
Hive メタストアとして外部の MySQL データベースまたは Amazon Aurora を使用するには、Hive のメタストアのデフォルト設定値を上書きし、外部のデータベースの場所 (Amazon RDS MySQL インスタンスまたは Amazon Aurora PostgreSQL インスタンス) を指定します。
注記
Hive では、メタストアテーブルに対する同時書き込みアクセスのサポートも防止も行いません。2 つのクラスター間でメタストア情報を共有する場合は、同じメタストアテーブルに同時に書き込まないようにします (同じメタストアテーブルの異なるパーティションに書き込む場合は除きます)。
次の手順では、Hive メタストアの場所として設定したデフォルト値を上書きし、新しく設定したメタストアの場所を使用してクラスターを起動する方法を示します。
EMR クラスターの外にメタストアを作成するには
-
MySQL または Aurora PostgreSQL データベースを作成します。PostgreSQL を使用する場合は、クラスターをプロビジョニングした後に設定する必要があります。クラスターの作成では MySQL のみがサポートされます。Aurora MySQL と Aurora PostgreSQL の違いについては、「Amazon Aurora MySQL の概要」および「Amazon Aurora PostgreSQL の操作」を参照してください。Amazon RDS データベースの作成方法については、https://aws.amazon.com/rds/
を参照してください。 -
データベースと ElasticMapReduce-Master セキュリティグループの間の JDBC 接続が許可されるようにセキュリティグループを変更します。アクセス用のセキュリティグループの変更方法については、「Amazon EMR マネージドセキュリティグループの使用」を参照してください。
-
JDBC 設定値を、
hive-site.xmlに設定します:重要
パスワードなどの機密情報を Amazon EMR 設定 API に渡す場合、その情報は、十分なアクセス許可を持つアカウントに表示されます。その情報が他のユーザーに表示される可能性のあることを懸念する場合は、管理者アカウントでクラスターを作成し、
elasticmapreduce:DescribeClusterAPI キーに対するアクセス権限を明示的に拒否するロールを作成することで、他のユーザー(IAM ユーザーまたは認証情報を委譲されたユーザー)に対してそのクラスター上のサービスへのアクセスを制限します。-
次の例のように、
hiveConfiguration.jsonの編集を含むhive-site.xmlという設定ファイルを作成します。hostnameを、データベースを実行する Amazon RDS インスタンスの DNS アドレスに置き換え、usernameとpasswordを、データベースの認証情報に置き換えます。MySQL データベースインスタンスおよび Aurora データベースインスタンスへの接続の詳細については、「Amazon RDS ユーザーガイド」の「MySQL データベースエンジンを実行している DB インスタンスへの接続」および「Athena DB クラスターへの接続」を参照してください。javax.jdo.option.ConnectionURLは、JDBC メタストアの JDBC 接続文字列です。javax.jdo.option.ConnectionDriverNameは、JDBC メタストアのドライバークラス名です。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" } } ] -
次の AWS CLI コマンドに示すように、クラスターの作成時に
hiveConfiguration.jsonファイルを参照します。このコマンドでは、ファイルはローカルに保存されます。ファイルを Amazon S3 にアップロードし、そこで参照することもできます (例:s3://)。DOC-EXAMPLE-BUCKET/hiveConfiguration.json注記
読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。
aws emr create-cluster --release-labelemr-7.10.0--instance-type m5.xlarge --instance-count 2 \ --applications Name=Hive --configurations file://hiveConfiguration.json --use-default-roles
-
-
クラスターのプライマリノードに接続します。
プライマリノードに接続する方法の詳細については、「Amazon EMR 管理ガイド」の「SSH を使用してプライマリノードに接続する」を参照してください。
-
次のようなコマンドを入力することにより、Amazon S3 上の場所を指定して Hive テーブルを作成します。
CREATE EXTERNAL TABLE IF NOT EXISTS table_name ( key int, value int ) LOCATION s3://DOC-EXAMPLE-BUCKET/hdfs/ -
実行中のクラスターに Hive スクリプトを追加します。
Hive クラスターは、Amazon RDS に配置されたメタストアを使って実行されます。このメタストアを共有する他の Hive クラスターはすべて、メタストアの場所を指定して起動します。