翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon EMR AWSで Spark で Glue データカタログを使用する
Amazon EMR リリース 5.8.0 以降を使用して、Apache Hive メタストアとして AWSGlue データカタログを使用するように Spark を設定できます。永続的な Hive メタストア、または異なるクラスター、サービス、アプリケーション、またはAWSアカウントによって共有される Hive メタストアが必要な場合は、この設定をお勧めします。
Amazon EMR リリース 6.5.0 以降を使用して、Apache Iceberg で AWSGlue データカタログを使用するように Spark を設定できます。
Amazon EMR リリース 7.5.0 以降を使用して、 Glue データカタログを Iceberg AWSREST カタログとして使用するように Spark を設定できます。
AWSGlue はフルマネージド型の抽出、変換、ロード (ETL) サービスで、データを簡単かつ費用対効果の高い方法で分類し、クリーンアップ、強化し、さまざまなデータストア間で確実に移動できます。AWSGlue Data Catalog は、Amazon EMR、Amazon RDS、Amazon Redshift、Redshift Spectrum、Athena、および Apache Hive メタストアと互換性のある任意のアプリケーションと統合して、さまざまなデータソースとデータ形式にわたって統合されたメタデータリポジトリを提供します。 AWSGlue クローラは、Amazon S3 のソースデータからスキーマを自動的に推測し、関連するメタデータをデータカタログに保存できます。データカタログの詳細については、「 Glue デベロッパーガイドAWS」の「 Glue データカタログの入力」を参照してください。 AWS
Glue AWSには個別の料金が適用されます。データカタログにメタデータを保存してアクセスするための月額料金、Glue ETL AWSジョブとクローラランタイムに対して 1 分あたりに課金される時間料金、プロビジョニングされた開発エンドポイントごとに 1 分あたりに課金される時間料金があります。Data Catalog では、最大 100 万個までのオブジェクトを無料で保存できます。100 万を超えるオブジェクトを保存した場合は、100,000 オブジェクトごとに 1 USD が課金されます。Data Catalog 内のオブジェクトは、テーブル、パーティション、またはデータベースです。詳細については、「Glue 料金表
重要
2017 年 8 月 14 日より前に Amazon Athena または Amazon Redshift Spectrum を使用してテーブルを作成した場合、データベースとテーブルは AWSGlue データカタログとは別の Athena 管理カタログに保存されます。Amazon EMR をこれらのテーブルと統合するには、 AWSGlue データカタログにアップグレードする必要があります。詳細については、「Amazon Athena ユーザーガイド」の「 AWSGlue データカタログへのアップグレード」を参照してください。 Amazon Athena
Apache Hive メタストアとしての AWSGlue データカタログの指定
、、または Amazon EMR API を使用してAWS マネジメントコンソールAWS CLI、 AWSGlue データカタログをメタストアとして指定できます。CLI または API を使用する場合は、Spark の設定分類を使用してデータカタログを指定します。さらに、Amazon EMR 5.16.0 以降では、設定分類を使用して別の でデータカタログを指定できますAWS アカウント。コンソールを使用する場合は、[Advanced Options] (詳細オプション) または [Quick Options] (クイックオプション) を使用して、Data Catalog を指定できます。
注記
Zeppelin は Spark AWSコンポーネントと共にインストールされるため、 Glue Data Catalog を使用するオプションは Zeppelin でも使用できます。
Apache Iceberg カタログとしての AWSGlue データカタログの指定
AWSGlue データカタログは、、、Amazon EMR API、または Spark セッションランタイム設定を使用して、Apache Iceberg カタログ実装、AWS マネジメントコンソールAWS CLIまたは Apache Iceberg REST カタログエンドポイントとして指定できます。CLI または API を使用する場合は、Spark の設定分類を使用してデータカタログを指定します。詳細については、「Apache Iceberg カタログとしての AWSGlue データカタログの指定」を参照してください。
IAM アクセス許可
クラスターの EC2 インスタンスプロファイルには、 Glue アクションの AWSIAM アクセス許可が必要です。さらに、 Glue Data Catalog オブジェクトAWSの暗号化を有効にする場合は、暗号化AWS KMS keyに使用される の暗号化、復号、生成もロールに許可する必要があります。
Glue AWSアクションのアクセス許可
Amazon EMR の デフォルトの EC2 インスタンスプロファイルを使用する場合、アクションは必要ありません。にアタッチされている AmazonElasticMapReduceforEC2Roleマネージドポリシーは、必要なすべての Glue AWSアクションEMR_EC2_DefaultRoleを許可します。ただし、カスタム EC2 インスタンスプロファイルとアクセス許可を指定する場合は、適切な AWSGlue アクションを設定する必要があります。開始点として AmazonElasticMapReduceforEC2Role 管理ポリシーを使用します。詳細については、「Amazon EMR 管理ガイド」の「クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)」を参照してください。
Glue Data Catalog AWSを暗号化および復号するためのアクセス許可
インスタンスプロファイルには、キーを使用してデータを暗号化および復号するためのアクセス許可が必要です。以下のステートメントが両方とも適用される場合、これらのアクセス許可を設定する必要はありません。
-
Glue AWSのマネージドキーを使用して、 AWSGlue Data Catalog オブジェクトの暗号化を有効にします。
-
AWSGlue データカタログAWS アカウントと同じ にあるクラスターを使用します。
それ以外の場合は、EC2 インスタンスプロファイルにアタッチされたアクセス許可ポリシーに次のステートメントを追加する必要があります。
AWSGlue データカタログの暗号化の詳細については、AWS「 Glue デベロッパーガイド」の「データカタログの暗号化」を参照してください。
リソースベースのアイデンティティアクセス許可
Amazon EMR で AWSGlue を Hive、Spark、または Presto と組み合わせて使用する場合、AWSGlue は Data Catalog リソースへのアクセスを制御するためのリソースベースのポリシーをサポートします。これらのリソースには、データベース、テーブル、接続、ユーザー定義関数が含まれます。詳細については、「AWS Glue デベロッパーガイド」の「AWS Glue リソースポリシー」を参照してください。
リソースベースのポリシーを使用して Amazon EMR 内から AWSGlue へのアクセスを制限する場合、アクセス許可ポリシーで指定するプリンシパルは、クラスターの作成時に指定する EC2 インスタンスプロファイルに関連付けられたロール ARN である必要があります。例えば、カタログにアタッチされたリソースベースのポリシーの場合、以下の例に示されている形式を使用して、クラスター EC2 インスタンスのデフォルトサービスロールのロール ARN である EMR_EC2_DefaultRole を Principal として指定できます。
arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole
acct-id は Glue アカウント ID AWSとは異なる場合があります。これにより、さまざまなアカウントで EMR クラスターからアクセスできます。異なるアカウントから、複数のプリンシパルを指定できます。
AWSGlue データカタログを使用する際の考慮事項
Spark AWSで Apache Hive メタストアとして Glue データカタログを使用する場合は、次の項目を考慮してください。
-
場所の URI が指定されていないデフォルトデータベースを使用すると、テーブルの作成時に障害が発生します。回避策として、
LOCATIONの使用時にs3://句を使用してamzn-s3-demo-bucket1CREATE TABLEなどのバケットの場所を指定します。または、デフォルトデータベース以外のデータベース内にテーブルを作成します。 Glue AWS内からのテーブルの名前変更はサポートされていません。
LOCATIONを指定せずに Hive テーブルを作成すると、テーブルデータは、hive.metastore.warehouse.dirプロパティによって指定された場所に保管されます。デフォルトでは、これは HDFS 内の場所です。別のクラスターがテーブルにアクセスする必要がある場合、テーブルを作成したクラスターに対する適切なアクセス許可がない限り、処理に失敗します。さらに、HDFS ストレージは一時的であるため、クラスターが終了すると、テーブルデータは失われ、テーブルを再作成する必要があります。Glue を使用して Hive テーブルを作成するときは、Amazon S3 AWSLOCATIONで を指定することをお勧めします。または、hive-site設定分類を使用して、hive.metastore.warehouse.dirの Amazon S3 で場所を指定できます。これは、すべての Hive テーブルに適用されます。テーブルが HDFS ロケーションで作成され、テーブルを作成したクラスターがまだ実行されている場合は、 Glue 内からテーブルロケーションを Amazon S3 AWSに更新できます。詳細については、「 AWSGlue デベロッパーガイド」の「 Glue コンソールでのテーブルの操作」を参照してください。 AWS引用符とアポストロフィを含むパーティション値はサポートされていません(例:
PARTITION (owner="Doe's").)。列統計
は、emr-5.31.0 以降でサポートされています。 Hive 認可
の使用はサポートされていません。代替策として、AWS Glue リソースベースのポリシーを使用することを検討してください。詳細については、「Use Resource-Based Policies for Amazon EMR Access to AWSGlue Data Catalog」を参照してください。
Spark AWSで Glue データカタログを Apache Iceberg REST Catalog として使用する場合は、次の点を考慮してください。
-
「Iceberg SparkCatalog と SparkSessionCatalog を使用する場合の設定の違い」で説明されている Iceberg で Spark セッションカタログを使用する場合は、 AWS Glue Data Catalog を Apache Iceberg REST カタログとして設定するだけでなく、AWS Glue Data Catalog を Apache Hive メタストアとして設定する必要があります。
-
AWSGlue データカタログ IRC エンドポイントは、Amazon SigV4 認証スキームのみをサポートします。OAuth はサポートされていません。OAuth ユーザーの場合は、IAM Identity Center を使用してアクセスを設定してください。「Connecting Lake Formation with IAM Identity Center」を参照してください。
-
AWSGlue Iceberg REST カタログは、オープンソースのすべてのオペレーションをサポートしているわけではありません。
-
Lake Formation を使用した Amazon EMR の考慮事項は次のとおりです。