すべてのプロダクト
Search
ドキュメントセンター

Data Lake Formation:EMR on ECS での DLF 内のファイルへのアクセス

最終更新日:Feb 14, 2026

このトピックでは、EMR on ECS 環境で Paimon 仮想ファイルシステム (PVFS) にアクセスする方法について説明します。

前提条件

  • バージョン 5.12.0 以降の EMR クラスターが作成され、Spark3 および Paimon コンポーネントが選択されていること。異なるバージョンが必要な場合は、DingTalk グループ (ID: 106575000021) に参加して DLF 開発者に連絡してください。

  • DLF カタログが作成されています。

  • EMR クラスターと DLF サービスが同じリージョンにあり、EMR クラスターの VPC が DLF ホワイトリストに追加されていること。

ロールへの DLF 権限の付与

  1. AliyunECSInstanceForEMRRole ロールに RAM 権限を付与します。EMR プロダクト化統合が完了した後は、このステップをスキップできます。

    1. Alibaba Cloud アカウントまたは RAM 管理者として、Resource Access Management (RAM) コンソールにログインします。

    2. [Identity Management] > [Roles] をクリックします。AliyunECSInstanceForEMRRole ロールを検索します。

    3. [操作] 列で、[承認の追加] をクリックします。[承認の追加] ページが開きます。

    4. [アクセス権限ポリシー] で、AliyunDLFFullAccess を検索して選択し、[承認の確認] をクリックします。

    image

  2. DLF カタログに対する AliyunECSInstanceForEMRRole ロールの権限を付与します。

    1. Data Lake Formation コンソールにログインします。

    2. [カタログ] リストページで、カタログ名をクリックしてカタログ詳細ページを開きます。

    3. [権限] タブをクリックし、[承認] をクリックします。

    4. [承認] ページで、次のパラメーターを設定し、[OK] をクリックします。

      • [プリンシパル]: RAM ユーザー/RAM ロールを選択します。

      • [プリンシパルの選択]: ドロップダウンリストから AliyunECSInstanceForEMRRole を選択します。

        説明

        AliyunECSInstanceForEMRRole がドロップダウンリストにない場合は、ユーザー管理ページに移動して [同期] をクリックします。

      • [事前設定された権限タイプ]: Data Editor を選択します。

クラスター Paimon 依存関係のアップグレード

  • 次の依存関係パッケージをバージョン 1.3 以降にアップグレードします。

  • ご利用の Spark バージョンに対応する paimon-spark 依存関係パッケージを選択し、バージョン 1.3 以降にアップグレードします。

    Maven リポジトリ」で、対応する依存関係パッケージを選択します。たとえば、Spark 3.2 を使用している場合は、paimon-spark-3.2-1.3.0 またはそれ以降のバージョンを選択します。

  1. 依存関係パッケージのインポート

    4 つの依存関係パッケージを OSS にアップロードします。ファイルの権限を公開読み取りに設定します。詳細については、「シンプルアップロード」をご参照ください。

  2. スクリプトを作成して OSS にアップロード

    #!/bin/bash
    
    echo 'prepare paimon-vfs in hadoop classpath'
    cd /opt/apps/JINDOSDK/jindosdk-current/lib
    rm -rf paimon-*
    wget ${paimon_vfs_jar}
    wget ${paimon_jindo_jar}
    wget ${paimon_bundle_jar}
    
    echo 'prepare paimon-spark in spark classpath'
    rm -rf /opt/apps/PAIMON/paimon-dlf
    rm -rf /opt/apps/PAIMON/paimon-dlf.tar.gz.*
    mkdir -p /opt/apps/PAIMON/paimon-dlf/lib/spark3
    cd /opt/apps/PAIMON/paimon-dlf/lib/spark3
    wget ${paimon_spark_jar}
    rm -f /opt/apps/PAIMON/paimon-current
    ln -sf /opt/apps/PAIMON/paimon-dlf /opt/apps/PAIMON/paimon-current
    重要

    スクリプト内のプレースホルダー ${paimon_vfs_jar}${paimon_jindo_jar}${paimon_bundle_jar}、および ${paimon_spark_jar} を、対応する OSS オブジェクトのダウンロードパスに置き換えます。デフォルトでは、ECS クラスター上の EMR はインターネットにアクセスできません。例:

    • 内部エンドポイント: https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-jindo-1.3.0.jar

    • パブリックエンドポイント: https://{bucket}.oss-cn-hangzhou.aliyuncs.com/jars/paimon-jindo-1.3.0.jar

  3. EMR クラスターのブートストラップアクションとしてスクリプトを実行します。詳細については、「スクリプトの手動実行」をご参照ください。

    1. EMR コンソールで、ご利用のクラスターのページに移動し、[スクリプト操作] > [手動実行] を選択します。[作成して実行] をクリックします。

    2. 表示されるダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。

      • [名前]: スクリプトのカスタム名を入力します。

      • [スクリプトの場所]: OSS にアップロードしたアップグレードスクリプトを選択します。スクリプトパスは oss://**/*.sh 形式である必要があります。

      • [実行範囲]: [クラスター] を選択します。

  4. スクリプトの実行後、変更を有効にするため、Spark および Hive サービスを再起動します。

EMR クラスター設定の更新

  1. EMR コンソールで、クラスターのページに移動し、[クラスターサービス] > [Hadoop-Common] > [設定] を選択します。

  2. core-site.xml タブで、[設定項目の追加] をクリックします。

    キー

    fs.AbstractFileSystem.pvfs.impl

    org.apache.paimon.vfs.hadoop.Pvfs

    fs.pvfs.impl

    org.apache.paimon.vfs.hadoop.PaimonVirtualFileSystem

    fs.pvfs.uri

    cn-hangzhou-vpc.dlf.aliyuncs.com

    説明

    実際のリージョンに置き換えます。詳細については、「エンドポイント」をご参照ください。

    fs.pvfs.token.provider

    dlf

    fs.pvfs.dlf.token-loader

    ecs

DLF 内のファイルへのアクセス

オブジェクトテーブルを作成します。その後、PVFS を使用してオブジェクトテーブルのデータにアクセスできます。

Hadoop Shell を使用したアクセス

Hadoop Shell を使用して、CSV ファイルをオブジェクトテーブルにアップロードします。

# CSV ファイルをアップロードします
echo "James,Sales,3000" >> employee.csv
hadoop fs -put employee.csv pvfs://catalog_name/default/object_table/

# object_table 内のすべてのファイルをクエリします
hadoop fs -ls pvfs://catalog_name/default/object_table/

# CSV ファイルを表示します
hadoop fs -cat pvfs://catalog_name/default/object_table/employee.csv

Hive を使用したアクセス

Hive を使用して、オブジェクトテーブル内の CSV ファイルをクエリします。

# Hive に接続します
beeline -u jdbc:hive2://localhost:10000

# CSV ファイルをマッピングするための一時テーブルを作成します
CREATE TEMPORARY TABLE temp_table (
    employee_name STRING,
    department STRING,
    salary INT
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE 
LOCATION 'pvfs://catalog_name/default/object_table/';

# 一時テーブルをクエリします
SELECT * FROM temp_table;

Spark を使用したアクセス

Spark を使用して、オブジェクトテーブル内の CSV ファイルをクエリします。

# spark-sql を起動します
spark-sql

# CSV ファイルをマッピングするための一時ビューを作成します
CREATE TEMPORARY VIEW temp_table
USING csv
OPTIONS (
path 'pvfs://catalog_name/default/object_table',
inferSchema 'false',
schema 'employee_name STRING, department STRING, salary INT'
);

# 一時ビューをクエリします
SELECT * FROM temp_table;