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