Topik ini menjawab pertanyaan umum mengenai EMR Serverless Spark.
Kompatibilitas DLF
Apa yang harus saya lakukan jika terjadi kesalahan "java.net.UnknownHostException" saat membaca data?
Gejala
Saat Anda menjalankan kueri SQL di Data Development untuk membaca data dari tabel data Data Lake Formation (DLF) 1.0, terjadi kesalahan
UnknownHostException.
Penyebab
Kesalahan ini biasanya terjadi karena sistem tidak dapat menemukan host yang ditentukan sehingga gagal melakukan kueri terhadap tabel data.
Solusi
Kompatibilitas OSS
Bagaimana cara mengakses sumber daya OSS lintas akun?
Saat menjalankan pekerjaan Spark di EMR Serverless Spark, Anda dapat menggunakan dua metode untuk mengakses sumber daya Object Storage Service (OSS) milik akun Alibaba Cloud yang berbeda: memberikan izin di tingkat ruang kerja atau mengonfigurasi pengaturan di tingkat tugas atau sesi.
Tingkat ruang kerja
Konfigurasikan kebijakan bucket untuk bucket OSS target guna memberikan izin baca dan tulis kepada peran eksekusi ruang kerja Serverless Spark Anda. Ikuti langkah-langkah berikut:
Buka halaman kebijakan bucket di konsol OSS.
Masuk ke konsol OSS.
Di panel navigasi sebelah kiri, klik Buckets. Di halaman Buckets, temukan dan klik bucket yang diinginkan.
Di panel navigasi sebelah kiri, pilih .
Di halaman Bucket Policy, pada tab Add Rule In GUI, klik Authorize.
Di panel Authorize, konfigurasikan parameter, lalu klik OK.
Parameter
Deskripsi
Resource
Pilih Entire Bucket.
Grantee
Pilih Other Accounts. Atur Principal menjadi
arn:sts::<uid>:assumed-role/<role-name>/*. Dalam nilai ini:Ganti
<uid>dengan ID akun Alibaba Cloud.Ganti
<role-name>dengan nama peran eksekusi untuk ruang kerja Serverless Spark. Nama ini bersifat case-sensitive. Untuk melihat peran eksekusi, buka halaman daftar ruang kerja EMR Serverless Spark dan klik Details di kolom Actions ruang kerja target. Peran default adalah AliyunEMRSparkJobRunDefaultRole.
Konfigurasikan parameter lainnya sesuai kebutuhan. Untuk informasi selengkapnya, lihat Mengonfigurasi kebijakan bucket menggunakan antarmuka grafis.
Tingkat tugas dan sesi
Saat membuat tugas atau sesi, tambahkan konfigurasi berikut di bagian Spark Configurations untuk mengakses bucket OSS target.
spark.hadoop.fs.oss.bucket.<bucketName>.endpoint <endpoint> spark.hadoop.fs.oss.bucket.<bucketName>.credentials.provider com.aliyun.jindodata.oss.auth.SimpleCredentialsProvider spark.hadoop.fs.oss.bucket.<bucketName>.accessKeyId <accessID> spark.hadoop.fs.oss.bucket.<bucketName>.accessKeySecret <accessKey>Ganti informasi berikut sesuai kebutuhan.
<bucketName>: Nama bucket OSS yang ingin Anda akses.<endpoint>: Titik akhir OSS.<accessID>: ID AccessKey akun Alibaba Cloud yang digunakan untuk mengakses data OSS.<accessKey>: Rahasia AccessKey akun Alibaba Cloud yang digunakan untuk mengakses data OSS.
Kesalahan eksekusi tugas: Berkas OSS tidak ada atau Anda tidak memiliki izin untuk mengaksesnya
Kompatibilitas S3
Bagaimana cara mengakses S3?
Saat membuat tugas atau sesi, tambahkan konfigurasi berikut di bagian Spark Configurations untuk mengakses S3.
spark.hadoop.fs.s3.impl com.aliyun.jindodata.s3.JindoS3FileSystem
spark.hadoop.fs.AbstractFileSystem.s3.impl com.aliyun.jindodata.s3.S3
spark.hadoop.fs.s3.bucket.<bucketName>.accessKeyId <accessID>
spark.hadoop.fs.s3.bucket.<bucketName>.accessKeySecret <accessKey>
spark.hadoop.fs.s3.bucket.<bucketName>.endpoint <endpoint>
spark.hadoop.fs.s3.credentials.provider com.aliyun.jindodata.s3.auth.SimpleCredentialsProviderGanti informasi berikut sesuai kebutuhan.
<bucketName>: Nama bucket S3 yang ingin Anda akses.<endpoint>: Titik akhir S3.<accessID>: ID AccessKey akun yang digunakan untuk mengakses data S3.<accessKey>: Rahasia AccessKey akun yang digunakan untuk mengakses data S3.
Kompatibilitas OBS
Bagaimana cara mengakses OBS?
Saat membuat tugas atau sesi, tambahkan konfigurasi berikut di bagian Spark Configurations untuk mengakses OBS.
spark.hadoop.fs.obs.impl com.aliyun.jindodata.obs.JindoObsFileSystem
spark.hadoop.fs.AbstractFileSystem.obs.impl com.aliyun.jindodata.obs.OBS
spark.hadoop.fs.obs.bucket.<bucketName>.accessKeyId <accessID>
spark.hadoop.fs.obs.bucket.<bucketName>.accessKeySecret <accessKey>
spark.hadoop.fs.obs.bucket.<bucketName>.endpoint <endpoint>
spark.hadoop.fs.obs.credentials.provider com.aliyun.jindodata.obs.auth.SimpleCredentialsProviderGanti informasi berikut sesuai kebutuhan.
<bucketName>: Nama bucket OBS yang ingin Anda akses.<endpoint>: Titik akhir OBS.<accessID>: ID AccessKey akun yang digunakan untuk mengakses data OBS.<accessKey>: Rahasia AccessKey akun yang digunakan untuk mengakses data OBS.