全部产品
Search
文档中心

E-MapReduce:FAQ

更新时间:Nov 10, 2025

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.

    image

  • Penyebab

    Kesalahan ini biasanya terjadi karena sistem tidak dapat menemukan host yang ditentukan sehingga gagal melakukan kueri terhadap tabel data.

  • Solusi

    Metode konfigurasi bergantung pada apakah kluster Hadoop Distributed File System (HDFS) berada dalam mode ketersediaan tinggi (HA).

    • Mengakses jalur HDFS tanpa HA

      Jika location tabel mengarah ke jalur HDFS di kluster yang tidak mengaktifkan HA, pastikan nama domain dalam location dapat diakses. Secara default, master-1-1.<cluster-id>.<region>.emr.aliyuncs.com dapat diakses langsung. Untuk nama domain lainnya, tambahkan pemetaan. Untuk informasi selengkapnya, lihat Mengelola nama domain.

    • Mengakses jalur HDFS dengan HA

      Jika location tabel mengarah ke jalur HDFS di kluster yang mengaktifkan HA, Anda harus terlebih dahulu mengonfigurasi pemetaan nama domain. Selanjutnya, buat file konfigurasi bernama hdfs-site.xml di Mengelola File Konfigurasi Kustom dan simpan ke jalur /etc/spark/conf. Langkah ini memastikan bahwa Java Runtime atau Fusion Runtime dapat mengakses data. Kode berikut menyediakan contoh file tersebut. Konten lengkapnya harus didasarkan pada file hdfs-site.xml di kluster EMR on ECS Anda.

      <?xml version="1.0"?>
      <configuration>
        <property>
          <name>dfs.nameservices</name>
          <value>hdfs-cluster</value>
        </property>
        <property>
          <name>dfs.ha.namenodes.hdfs-cluster</name>
          <value>nn1,nn2,nn3</value>
        </property>
        <property>
          <name>dfs.namenode.rpc-address.hdfs-cluster.nn1</name>
          <value>master-1-1.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
        </property>
        <property>
          <name>dfs.namenode.rpc-address.hdfs-cluster.nn2</name>
          <value>master-1-2.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
        </property>
        <property>
          <name>dfs.namenode.rpc-address.hdfs-cluster.nn3</name>
          <value>master-1-3.<cluster-id>.<region-id>.emr.aliyuncs.com:<port></value>
        </property>
        <property>
          <name>dfs.client.failover.proxy.provider.hdfs-cluster</name>
          <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
      </configuration>
    • (Opsional) Mengonfigurasi akses ke jalur HDFS yang diaktifkan Kerberos

      Jika suatu pekerjaan perlu mengakses jalur HDFS yang diaktifkan Kerberos, Anda harus menambahkan parameter spark.kerberos.access.hadoopFileSystems ke konfigurasi Spark. Nilai parameter ini harus didasarkan pada konfigurasi `fs.defaultFS` di kluster HDFS. Sebagai contoh, nilai default untuk kluster EMR on ECS dengan HA adalah hdfs://hdfs-cluster.

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:

    1. Buka halaman kebijakan bucket di konsol OSS.

      1. Masuk ke konsol OSS.

      2. Di panel navigasi sebelah kiri, klik Buckets. Di halaman Buckets, temukan dan klik bucket yang diinginkan.

      3. Di panel navigasi sebelah kiri, pilih Access Control > Bucket Policy.

    2. Di halaman Bucket Policy, pada tab Add Rule In GUI, klik Authorize.

    3. 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.SimpleCredentialsProvider

    Ganti 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.SimpleCredentialsProvider

    Ganti 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.