MaxCompute Spark mengakses Alibaba Cloud Object Storage Service (OSS) melalui Jindo SDK (software development kit). Jindo SDK merupakan klien OSS berkinerja tinggi yang dirancang untuk ekosistem Hadoop dan Spark, serta menyediakan implementasi Hadoop FileSystem yang sangat dioptimalkan untuk Alibaba Cloud OSS.
Langkah 1: Konfigurasikan kelas implementasi dan endpoint OSS
Gunakan endpoint publik untuk wilayah yang sesuai dalam mode lokal. Dalam mode kluster, gunakan endpoint internal. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir.
Spark 3.5+ (mengintegrasikan JindoSDK 6.5 secara default). Tambahkan konfigurasi berikut:
spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.JindoOSS spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem spark.hadoop.fs.oss.endpoint=oss-${RegionId}-internal.aliyuncs.comVersi lainnya (jika menggunakan JindoSDK 3.7). Tambahkan konfigurasi berikut:
spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.emr.fs.oss.OSS spark.hadoop.fs.oss.impl=com.aliyun.emr.fs.oss.JindoOssFileSystem spark.hadoop.fs.oss.endpoint=oss-${RegionId}-internal.aliyuncs.com
Langkah 2: Konfigurasikan informasi autentikasi
Pilih salah satu dari dua metode autentikasi berikut.
Metode 1: Gunakan ID AccessKey dan Rahasia AccessKey
Tambahkan item konfigurasi berikut ke file spark-defaults.conf atau konfigurasi DataWorks Anda:
spark.hadoop.fs.oss.accessKeyId=${AccessId}
spark.hadoop.fs.oss.accessKeySecret=${AccessKey}Metode 2: Gunakan token Security Token Service
Untuk informasi selengkapnya, lihat Otorisasi akses dalam mode STS. Kemudian, tambahkan item konfigurasi berikut.
Konfigurasi Spark 3.5+
## Tambahkan item konfigurasi berikut ke file spark-defaults.conf atau konfigurasi DataWorks Anda:
spark.hadoop.fs.oss.credentials.provider=com.aliyun.jindodata.oss.auth.CustomCredentialsProvider
spark.hadoop.aliyun.oss.provider.url=http://localhost:10011/sts-token-info?user_id=${AliyunUid}&role=${RoleName}Konfigurasi untuk versi lainnya
## Tambahkan item konfigurasi berikut ke file spark-defaults.conf atau konfigurasi DataWorks Anda:
spark.hadoop.odps.cupid.http.server.enable=true
spark.hadoop.fs.jfs.cache.oss.credentials.provider=com.aliyun.emr.fs.auth.CustomCredentialsProvider
spark.hadoop.aliyun.oss.provider.url=http://localhost:10011/sts-token-info?user_id=${AliyunUid}&role=${RoleName}Langkah 3: Referensikan dependensi JindoSDK (lewati langkah ini untuk Spark 3.5+)
Mode lokal
Dalam mode lokal, unduh JindoSDK dan tambahkan ke classpath.
Buka File > Project Structure.

Di panel navigasi kiri, pilih
Modules. Klik tanda plus (+) dan pilihJARs or Directories.
Tambahkan semua file JAR dari folder
libJindoSDK.Di IDEA, klik OK.
Mode kluster
Untuk Spark 3.5, Jindo SDK sudah disertakan di sisi server. Tidak diperlukan tindakan tambahan.
Untuk versi lainnya, modifikasi file
spark-defaults.conf. Tambahkan item konfigurasi berikut untuk menggunakan sumber daya publik:spark.hadoop.odps.cupid.resources = public.jindofs-sdk-3.7.2.jar ## Catatan: Untuk menggunakan versi JindoSDK yang berbeda, unduh versi SDK yang sesuai, unggah ke proyek Anda, lalu referensikan menggunakan spark.hadoop.odps.cupid.resources.
Langkah 4: Konfigurasikan daftar putih jaringan
Secara default, Anda dapat mengaksesnya langsung tanpa konfigurasi tambahan.
Dalam mode kluster, jika Anda tidak dapat mengakses OSS, tambahkan nama domain bucket target ke daftar putih pekerjaan dengan menambahkan item konfigurasi berikut ke file
spark-defaults.confatau konfigurasi DataWorks Anda:spark.hadoop.odps.cupid.trusted.services.access.list=${BucketName}.oss-${RegionId}-internal.aliyuncs.com
Langkah 5: Kirimkan pekerjaan
./bin/spark-submit --class xxx spark-app.jar