Topik ini menjelaskan cara mengakses Object Storage Service (OSS) dari Spark pada MaxCompute.
Konfigurasi titik akhir OSS
Gunakan titik akhir publik wilayah tempat OSS berada saat men-debug fitur. Gunakan titik akhir internal wilayah tersebut saat mengirimkan pekerjaan di lingkungan produksi. Untuk informasi lebih lanjut, lihat Wilayah dan Titik Akhir.
Konfigurasi metode akses OSS
- Akses OSS menggunakan ID AccessKey dan Rahasia AccessKey dari akun.
spark.hadoop.fs.oss.accessKeyId = xxxxxx spark.hadoop.fs.oss.accessKeySecret = xxxxxx spark.hadoop.fs.oss.endpoint = oss-xxxxxx-internal.aliyuncs.com - Akses OSS menggunakan Token Layanan Keamanan (STS).
Jika Anda mengakses OSS menggunakan ID AccessKey dan Rahasia AccessKey dari akun, Anda harus mengonfigurasi ID AccessKey dan Rahasia AccessKey dalam teks biasa. Ini menimbulkan risiko keamanan. Kami merekomendasikan agar Anda mengakses OSS menggunakan token STS.
- Pergi ke halaman Cloud Resource Access Authorization dan klik Konfirmasi Kebijakan Otorisasi. Kemudian, Proyek MaxCompute dapat mengakses sumber daya OSS dari akun Alibaba Cloud saat ini menggunakan token STS.Catatan Anda hanya dapat memberikan otorisasi kepada proyek MaxCompute untuk mengakses sumber daya OSS dengan metode ini jika pemilik proyek MaxCompute adalah akun Alibaba Cloud yang memiliki sumber daya OSS yang akan diakses.
- Dapatkan Nama Sumber Daya Cloud Alibaba (ARN) dari peran yang diasumsikan oleh Spark pada MaxCompute.
- Masuk ke Konsol Resource Access Management (RAM).
- Di panel navigasi kiri, pilih Identitas > Roles.
- Di halaman Roles, cari AliyunODPSDefaultRole.
- Di hasil pencarian, klik AliyunODPSDefaultRole di kolom Nama Peran. Di halaman yang muncul, dapatkan nilai ARN di bagian Basic Information. Nilainya dalam format
acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole.
- Tambahkan konten berikut ke konfigurasi Spark pada MaxCompute:
# Konfigurasikan Spark pada MaxCompute untuk mengakses sumber daya OSS menggunakan token STS. spark.hadoop.fs.oss.credentials.provider=org.apache.hadoop.fs.aliyun.oss.AliyunStsTokenCredentialsProvider # Konfigurasikan ARN dari peran yang diasumsikan oleh Spark pada MaxCompute. spark.hadoop.fs.oss.ststoken.roleArn=acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole # Konfigurasikan titik akhir internal yang digunakan untuk mengakses sumber daya OSS melalui VPC. spark.hadoop.fs.oss.endpoint=oss-cn-hangzhou-internal.aliyuncs.com
- Pergi ke halaman Cloud Resource Access Authorization dan klik Konfirmasi Kebijakan Otorisasi. Kemudian, Proyek MaxCompute dapat mengakses sumber daya OSS dari akun Alibaba Cloud saat ini menggunakan token STS.
Konfigurasi daftar putih
Dalam kebanyakan kasus, Spark pada MaxCompute dapat mengakses sumber daya OSS tanpa perlu mengonfigurasi daftar putih.
spark.hadoop.odps.cupid.trusted.services.access.list=[your_bucket_name].oss-xxxxxx-internal.aliyuncs.comGunakan JindoSDK untuk mengakses OSS
Tambahkan parameter spark.hadoop.fs.AbstractFileSystem.oss.impl dan spark.hadoop.fs.oss.impl ke objek SparkConf. Contoh kode:
val conf = new SparkConf()
.setAppName("jindo-sdk-demo")
.set("spark.hadoop.fs.AbstractFileSystem.oss.impl", "com.aliyun.emr.fs.oss.OSS")
.set("spark.hadoop.fs.oss.impl", "com.aliyun.emr.fs.oss.JindoOssFileSystem")spark.hadoop.fs.oss.impl. Jika tidak, pesan kesalahan "No FileSystem for scheme: oss" akan dikembalikan.