Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Hive での Iceberg クラスターの使用 - Amazon EMR

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

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

Hive での Iceberg クラスターの使用

Amazon EMR リリース 6.9.0 以降では、オープンソースの Iceberg Hive 統合に必要なセットアップ手順を実行しなくても、Hive クラスターで Iceberg を使用できます。Amazon EMR バージョン 6.8.0 以前の場合は、ブートストラップアクションを使用して iceberg-hive-runtime jar をインストールし Hive での Iceberg サポートを設定できます。

Amazon EMR 6.9.0 には、Hive 3.1.3 を Iceberg 0.14.1 と統合するためのすべての機能が含まれています。また、サポートされている実行エンジンを実行時に自動選択するなどの Amazon EMR の追加機能も含まれています (Amazon EMR on EKS 6.9.0)。

Iceberg クラスターの作成

Iceberg がインストールされたクラスターは、、 AWS Management Console、 AWS CLI または Amazon EMR API を使用して作成できます。このチュートリアルでは、 AWS CLI を使用して Amazon EMR クラスターで Iceberg を操作します。コンソールを使用して Iceberg がインストールされたクラスターを作成するには、「Build an Iceberg data lake using Amazon Athena, Amazon EMR, and AWS Glue」の手順を実行します。

で Amazon EMR で Iceberg を使用するには AWS CLI、まず以下のステップを使用してクラスターを作成します。 AWS CLI または Java SDK を使用して Iceberg 分類を指定する方法については、クラスターの作成 AWS CLI 時に を使用して設定を指定する「」または「」を参照してくださいクラスター作成時に Java SDK を使用して設定を指定する。以下の内容で configurations.json という名前のファイルを作成します。

[{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]

次に、以下の設定でクラスターを作成し、この例の Amazon S3 バケットパスとサブネット ID を自分のものに置き換えます。

aws emr create-cluster --release-label emr-6.9.0 \ --applications Name=Hive \ --configurations file://iceberg_configurations.json \ --region us-east-1 \ --name My_hive_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef

Hive Iceberg クラスターは以下のことを行います。

  • Iceberg Hive ランタイム jar を Hive に読み込み、Hive エンジンの Iceberg 関連の設定を有効にします。

  • Amazon EMR Hive の動的実行エンジン選択を有効にして、ユーザーが Iceberg と互換性のある実行エンジンを設定できないようにします。

注記

Hive Iceberg クラスターは現在 AWS Glue データカタログをサポートしていません。デフォルトの Iceberg カタログは HiveCatalog で、これは Hive 環境用に設定されたメタストアに対応しています。カタログ管理の詳細については、Apache Hive ドキュメントの「Using HCatalog」を参照してください。

機能のサポート

Amazon EMR 6.9.0 は Hive 3.1.3 と Iceberg 0.14.1 をサポートしています。機能のサポートについては Hive 3.1.2 と 3.1.3 の Iceberg 互換機能に限定されています。以下の   コマンドがサポートされています。

  • Amazon EMR リリース 6.9.0~6.12.x では、libfb303 jar を Hive の auxlib ディレクトリに配置する必要があります。これを行うには、次のコマンドを使用します。

    sudo /usr/bin/ln -sf /usr/lib/hive/lib/libfb303-*.jar /usr/lib/hive/auxlib/libfb303.jar

    Amazon EMR リリース 6.13 以降では、libfb303 jar は自動的に Hive の auxlib ディレクトリにシンボリックリンクされます。

  • テーブルの作成

    • 非パーティションテーブル - Hive の外部テーブルは、次のようにストレージハンドラーを指定することで作成できます。

      CREATE EXTERNAL TABLE x (i int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
    • パーティションテーブル - Hive の外部パーティションテーブルは次のように作成できます。

      CREATE EXTERNAL TABLE x (i int) PARTITIONED BY (j int) STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler'
    注記

    ORC/AVRO/PARQUET の STORED AS ファイル形式は Hive 3 ではサポートされていません。デフォルトで、唯一のオプションは Parquet です。

  • テーブルの削除 - DROP TABLE コマンドは、次の例のようにテーブルを削除するために使用されます。

    DROP TABLE [IF EXISTS] table_name [PURGE];
  • テーブルの読み込み - 次の例のように、SELECT ステートメントを使用して Hive の Iceberg テーブルを読み込むことができます。サポートされている実行エンジンは MR と Tez です。

    SELECT * FROM table_name

    Hive の select 構文の詳細については、「LanguageManual Select」を参照してください。Hive で Iceberg テーブルを使用する select ステートメントの詳細については、「Apache Iceberg Select」を参照してください。

  • テーブルへの挿入 - HiveQL の INSERT INTO ステートメントは Map Reduce 実行エンジンのみをサポートする Iceberg テーブルで動作します。Amazon EMR Hive は実行時に Iceberg テーブルのエンジンを選択するため、Amazon EMR ユーザーは実行エンジンを明示的に設定する必要はありません。

    • 単一テーブルの insert into - 例:

      INSERT INTO table_name VALUES ('a', 1); INSERT INTO table_name SELECT...;
    • 複数テーブルの insert into - 非アトミック複数テーブル insert into ステートメントがサポートされています。例:

      FROM source INSERT INTO table_1 SELECT a, b INSERT INTO table_2 SELECT c,d;

Amazon EMR 7.3.0 以降、Hive with Iceberg AWS は Glue データカタログをメタストアとしてサポートしています。 AWS Glue データカタログをメタストアとして使用するには、次のプロパティを設定します。

SET iceberg.catalog.<catalog_name>.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog;

または、次のプロパティを設定することもできます。

SET iceberg.catalog.<catalog_name>.type=glue;

次に、以下の例を使用してテーブルを作成できます。

CREATE EXTERNAL TABLE table_name (col1 type1, col2 type2,..) ROW FORMAT SERDE 'org.apache.iceberg.mr.hive.HiveIcebergSerDe' STORED BY 'org.apache.iceberg.mr.hive.HiveIcebergStorageHandler' location '<location>' TBLPROPERTIES ('table_type'='iceberg', 'iceberg.catalog'='<catalog_name>');

Hive で Iceberg を使用するための考慮事項

  • Iceberg は以下のクエリタイプをサポートしています。

    • テーブルの作成

    • Drop table

    • Insert into table

    • Read table

  • DML (データ操作言語) 操作では MR (MapReduce) 実行エンジンのみがサポートされており、MR は Hive 3.1.3 で廃止されました。

  • AWS Glue Data Catalog は現在、Hive を使用した Iceberg ではサポートされていません。

  • エラー処理の堅牢性が不十分です。設定に誤りがあっても、insert into クエリが正常に完了する可能性があります。ただし、メタデータの更新に失敗によりデータが失われる可能性があります。

  • Iceberg Glue の統合は、Redshift マネージドストレージカタログでは機能しません。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.