翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
外部の 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:DescribeCluster
API キーに対するアクセス権限を明示的に拒否するロールを作成することで、他のユーザー(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-label
emr-7.7.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 クラスターはすべて、メタストアの場所を指定して起動します。