Topik ini menjelaskan cara mengakses sistem file virtual Paimon (PVFS) di lingkungan EMR yang berjalan di ECS.
Prasyarat
Kluster EMR versi 5.12.0 atau lebih baru telah dibuat dengan komponen Spark3 dan Paimon yang dipilih. Jika Anda memerlukan versi berbeda, bergabunglah dengan grup DingTalk (ID: 106575000021) untuk menghubungi pengembang DLF.
DLF Catalog telah dibuat.
Kluster EMR dan layanan DLF berada di wilayah yang sama, serta VPC kluster EMR telah ditambahkan ke daftar putih DLF.
Berikan Izin DLF kepada Role
Berikan izin RAM kepada role AliyunECSInstanceForEMRRole. Langkah ini dapat dilewati setelah integrasi produk EMR selesai.
Masuk ke Konsol Resource Access Management (RAM) sebagai Akun Alibaba Cloud atau administrator RAM.
Klik , lalu temukan role AliyunECSInstanceForEMRRole.
Pada kolom Actions, klik Add Authorization. Halaman Add Authorization akan terbuka.
Pada bagian Access Policy, cari dan pilih AliyunDLFFullAccess, lalu klik Confirm Authorization.

Berikan izin role AliyunECSInstanceForEMRRole pada DLF Catalog.
Masuk ke Konsol Data Lake Formation.
Pada halaman daftar Catalog, klik nama katalog untuk membuka halaman detail katalog.
Klik tab Permissions, lalu klik Authorize.
Pada halaman Authorize, konfigurasikan parameter berikut dan klik OK.
Principal: Pilih RAM-User/RAM-Role.
Select Principal: Pilih AliyunECSInstanceForEMRRole dari daftar drop-down.
CatatanJika AliyunECSInstanceForEMRRole tidak muncul dalam daftar drop-down, buka halaman manajemen pengguna dan klik Synchronize.
Preset Permission Type: Pilih Data Editor.
Peningkatan Dependensi Paimon Kluster
Upgrade paket dependensi berikut ke versi 1.3 atau lebih baru:
Pilih paket dependensi paimon-spark yang sesuai dengan versi Spark Anda dan upgrade ke versi 1.3 atau lebih baru:
Di Repositori Maven, pilih paket dependensi yang sesuai. Misalnya, jika Anda menggunakan Spark 3.2, pilih
paimon-spark-3.2-1.3.0atau versi yang lebih baru.
Impor paket dependensi.
Unggah keempat paket dependensi ke OSS dan atur izin file menjadi public-read. Untuk informasi selengkapnya, lihat Simple Upload.
Buat skrip dan unggah ke 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-currentPentingGanti placeholder
${paimon_vfs_jar},${paimon_jindo_jar},${paimon_bundle_jar}, dan${paimon_spark_jar}dalam skrip dengan path unduhan objek OSS yang sesuai. Secara default, kluster EMR di ECS tidak dapat mengakses Internet. Contoh:Titik akhir internal:
https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-jindo-1.3.0.jar.Titik akhir publik:
https://{bucket}.oss-cn-hangzhou.aliyuncs.com/jars/paimon-jindo-1.3.0.jar.
Jalankan skrip sebagai tindakan bootstrap kluster EMR. Untuk informasi selengkapnya, lihat Manually run a script.
Di Konsol EMR, buka halaman kluster Anda dan pilih , lalu klik Create and Execute.
Pada kotak dialog yang muncul, konfigurasikan parameter berikut dan klik OK.
Name: Masukkan nama kustom untuk skrip.
Script Location: Pilih skrip peningkatan yang telah Anda unggah ke OSS. Path skrip harus dalam format oss://**/*.sh.
Execution Scope: Pilih Cluster.
Setelah skrip dijalankan, restart layanan Spark dan Hive agar perubahan diterapkan.
Perbarui Konfigurasi Kluster EMR
Di Konsol EMR, buka halaman kluster Anda dan pilih .
Pada tab core-site.xml, klik Add Configuration Item.
Key
Value
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
CatatanGanti dengan wilayah aktual. Untuk informasi selengkapnya, lihat Endpoints.
fs.pvfs.token.provider
dlf
fs.pvfs.dlf.token-loader
ecs
Akses File di DLF
Buat Object Table. Anda kemudian dapat mengakses data dalam object table menggunakan PVFS.
Akses Menggunakan Hadoop Shell
Unggah file CSV ke object table menggunakan shell Hadoop.
# Unggah file CSV
echo "James,Sales,3000" >> employee.csv
hadoop fs -put employee.csv pvfs://catalog_name/default/object_table/
# Tampilkan semua file di object_table
hadoop fs -ls pvfs://catalog_name/default/object_table/
# Lihat isi file CSV
hadoop fs -cat pvfs://catalog_name/default/object_table/employee.csvAkses Menggunakan Hive
Kueri file CSV di object table menggunakan Hive.
# Terhubung ke Hive
beeline -u jdbc:hive2://localhost:10000
# Buat tabel sementara untuk memetakan file 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/';
# Kueri tabel sementara
SELECT * FROM temp_table;Akses Menggunakan Spark
Kueri file CSV di object table menggunakan Spark.
# Jalankan spark-sql
spark-sql
# Buat tampilan sementara untuk memetakan file 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'
);
# Kueri tampilan sementara
SELECT * FROM temp_table;