All Products
Search
Document Center

E-MapReduce:Peran aplikasi ECS untuk EMR V3.32 dan versi sebelumnya serta EMR V4.5 dan versi sebelumnya

Last Updated:Mar 27, 2026

E-MapReduce (EMR) secara otomatis mengikat peran aplikasi ECS bernama MetaService ke setiap kluster yang Anda buat. Pekerjaan dan aplikasi yang berjalan di kluster menggunakan peran ini untuk mengakses sumber daya Alibaba Cloud—tanpa memerlukan pasangan AccessKey dalam file konfigurasi atau kode, sehingga menghilangkan risiko eksposur kredensial.

MetaService mendukung akses ke layanan berikut tanpa pasangan AccessKey:

Layanan Diaktifkan secara default
Object Storage Service (OSS) Ya
Log Service Tidak — memerlukan izin RAM tambahan
Message Service (MNS) Tidak — memerlukan izin RAM tambahan

Untuk mengaktifkan akses Log Service atau MNS, berikan izin yang diperlukan ke peran AliyunEmrEcsDefaultRole di Konsol RAM. Untuk informasi selengkapnya, lihat Berikan izin ke peran RAM.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Cara kerja MetaService

Saat pekerjaan atau aplikasi memanggil layanan Alibaba Cloud yang didukung, MetaService menyediakan kredensial sementara dari Security Token Service (STS) di latar belakang. Anda tidak perlu menyertakan pasangan AccessKey dalam kode atau konfigurasi.

Rotasi kredensial STS: Kredensial sementara STS baru dihasilkan 30 menit sebelum kredensial saat ini kedaluwarsa. Kedua kredensial tetap valid selama jendela tumpang tindih 30 menit tersebut.

Izin default

Peran AliyunEmrEcsDefaultRole dikonfigurasi dengan kebijakan AliyunEmrECSRolePolicy, yang memberikan izin berikut.

Izin OSS

Izin (Aksi) Deskripsi
oss:PutObject Mengunggah file atau folder
oss:GetObject Mengambil informasi tentang file atau folder
oss:ListObjects Mengambil daftar file
oss:DeleteObject Menghapus file
oss:ListBuckets Mengambil daftar bucket
oss:AbortMultipartUpload Menghentikan event unggah multi-bagian
oss:ListMultipartUploads Mengambil daftar semua event unggah multi-bagian yang sedang berlangsung
oss:RestoreObject Memulihkan objek Archive atau Cold Archive
oss:GetBucketInfo Mengambil informasi tentang bucket
oss:ListObjectVersions Mengambil versi semua objek dalam bucket, termasuk penanda hapus
oss:DeleteObjectVersion Menghapus versi tertentu dari suatu objek
oss:PostDataLakeStorageFileOperation Mengakses OSS-HDFS

Izin Tablestore

Izin (Aksi) Deskripsi
ots:CreateTable Membuat tabel berdasarkan skema tabel yang ditentukan
ots:DeleteTable Menghapus tabel tertentu dari instans saat ini
ots:GetRow Membaca data dalam satu baris berdasarkan kunci primer tertentu
ots:PutRow Memasukkan data ke baris tertentu
ots:UpdateRow Memperbarui data dalam baris tertentu
ots:DeleteRow Menghapus satu baris data
ots:GetRange Membaca data dalam rentang nilai tertentu dari kunci primer
ots:BatchWriteRow Memasukkan, memodifikasi, atau menghapus beberapa baris data dari satu atau beberapa tabel sekaligus
ots:BatchGetRow Membaca beberapa baris data dari satu atau beberapa tabel sekaligus
ots:ComputeSplitPointsBySize Memisahkan data dalam tabel secara logis menjadi beberapa shard dengan ukuran mendekati ukuran yang ditentukan, serta mengembalikan titik pemisahan antar shard dan prompt tentang host tempat partisi berada
ots:StartLocalTransaction Membuat transaksi lokal berdasarkan nilai kunci partisi yang ditentukan dan mengambil ID transaksi lokal tersebut
ots:CommitTransaction Melakukan commit transaksi lokal
ots:AbortTransaction Membatalkan transaksi lokal

Izin Data Lake Formation (DLF)

Izin (Aksi) Deskripsi
dlf:BatchCreatePartitions Membuat beberapa partisi sekaligus
dlf:BatchCreateTables Membuat beberapa tabel sekaligus
dlf:BatchDeletePartitions Menghapus beberapa partisi sekaligus
dlf:BatchDeleteTables Menghapus beberapa tabel sekaligus
dlf:BatchGetPartitions Mengambil informasi tentang beberapa partisi sekaligus
dlf:BatchGetTables Mengambil informasi tentang beberapa tabel sekaligus
dlf:BatchUpdatePartitions Memperbarui beberapa partisi sekaligus
dlf:BatchUpdateTables Memperbarui beberapa tabel sekaligus
dlf:CreateDatabase Membuat database
dlf:CreateFunction Membuat fungsi
dlf:CreatePartition Membuat partisi
dlf:CreateTable Membuat tabel
dlf:DeleteDatabase Menghapus database
dlf:DeleteFunction Menghapus fungsi
dlf:DeletePartition Menghapus partisi
dlf:DeleteTable Menghapus tabel
dlf:GetDatabase Mengambil informasi tentang database
dlf:GetFunction Mengambil informasi tentang fungsi
dlf:GetPartition Mengambil informasi tentang partisi
dlf:GetTable Mengambil informasi tentang tabel
dlf:ListCatalogs Mengambil daftar katalog
dlf:ListDatabases Menjalankan kueri database
dlf:ListFunctionNames Mengambil daftar nama fungsi
dlf:ListFunctions Fungsi Query
dlf:ListPartitionNames Mengambil daftar nama partisi
dlf:ListPartitions Mengambil daftar partisi
dlf:ListPartitionsByExpr Mengambil partisi tabel metadata berdasarkan kondisi
dlf:ListPartitionsByFilter Mengambil partisi tabel metadata berdasarkan kondisi
dlf:ListTableNames Mengambil daftar nama tabel
dlf:ListTables Mengambil daftar tabel
dlf:RenamePartition Mengganti nama partisi
dlf:RenameTable Mengganti nama tabel
dlf:UpdateDatabase Memperbarui database
dlf:UpdateFunction Memperbarui fungsi
dlf:UpdateTable Memperbarui tabel
dlf:UpdateTableColumnStatistics Memperbarui statistik tabel metadata
dlf:GetTableColumnStatistics Mengambil statistik tabel metadata
dlf:DeleteTableColumnStatistics Menghapus statistik tabel metadata
dlf:UpdatePartitionColumnStatistics Memperbarui statistik partisi
dlf:GetPartitionColumnStatistics Mengambil statistik partisi
dlf:DeletePartitionColumnStatistics Menghapus statistik partisi
dlf:BatchGetPartitionColumnStatistics Mengambil statistik beberapa partisi sekaligus
dlf:CreateLock Membuat kunci metadata
dlf:UnLock Membuka kunci metadata tertentu
dlf:AbortLock Membatalkan kunci metadata
dlf:RefreshLock Memperbarui kunci metadata
dlf:GetLock Mengambil informasi tentang kunci metadata
dlf:GetAsyncTaskStatus Mengambil status tugas asinkron
dlf:DeltaGetPermissions Kueri izin
dlf:GetPermissions Mengambil informasi tentang izin data
dlf:GetServiceInfo Mengambil informasi tentang layanan
dlf:GetRoles Mengambil informasi tentang role dalam izin data
dlf:CheckPermissions Memverifikasi izin data

Menggunakan MetaService

Pilih pendekatan yang sesuai dengan workload Anda:

Skenario Pendekatan Yang Anda Dapatkan
Pekerjaan yang berjalan di kluster (Hadoop, Hive, Spark) Gunakan path OSS yang disederhanakan Akses OSS tanpa kredensial dalam path
Layanan yang dikelola sendiri atau aplikasi kustom Panggil API HTTP MetaService Kredensial sementara STS untuk OSS, Log Service, dan MNS

Akses OSS dari pekerjaan kluster

Saat MetaService aktif, gunakan format path yang disederhanakan dalam pekerjaan kluster apa pun:

oss://<bucket-name>/<object-path>

MetaService menangani otentikasi secara otomatis. Anda tidak perlu menyematkan kredensial dalam path, sehingga path OSS yang digunakan menjadi lebih pendek dan pengalaman interaksi dengan sumber daya OSS lebih lancar.

Hadoop — daftar objek:

# Tanpa MetaService (kredensial disematkan dalam path)
hadoop fs -ls oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c

# Dengan MetaService (path disederhanakan)
hadoop fs -ls oss://bucket/a/b/c

Hive — buat tabel eksternal yang didukung oleh OSS:

-- Tanpa MetaService (kredensial disematkan dalam path)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c';

-- Dengan MetaService (path disederhanakan)
CREATE EXTERNAL TABLE test_table(id INT, name string)
        ROW FORMAT DELIMITED
        FIELDS TERMINATED BY '/t'
        LOCATION 'oss://bucket/a/b/c';

Spark — baca data OSS:

// Tanpa MetaService (kredensial disematkan dalam path)
val data = sc.textFile("oss://ZaH******As1s:Ba23N**************sdaBj2@bucket.oss-cn-hangzhou-internal.aliyuncs.com/a/b/c")

// Dengan MetaService (path disederhanakan)
val data = sc.textFile("oss://bucket/a/b/c")

Dapatkan kredensial STS dari layanan yang dikelola sendiri

MetaService menyediakan API HTTP di http://localhost:10011 pada setiap node kluster. Panggil endpoint-endpoint ini untuk mengambil kredensial sementara STS yang dibutuhkan aplikasi Anda guna mengakses sumber daya Alibaba Cloud tanpa pasangan AccessKey.

Contoh — dapatkan wilayah kluster:

curl http://localhost:10011/cluster-region

Endpoint yang tersedia:

Endpoint Nilai Kembali
/cluster-region Wilayah tempat kluster berada
/cluster-role-name Nama Peran
/role-access-key-id ID AccessKey dari kredensial STS
/role-access-key-secret Rahasia AccessKey dari kredensial STS
/role-security-token Token keamanan dari kredensial STS
/cluster-network-type Jenis jaringan

Catatan penggunaan

Penting

Ubah atau hapus peran AliyunEmrEcsDefaultRole dengan hati-hati. Menghapus atau salah mengonfigurasi peran ini dapat menyebabkan kegagalan pembuatan kluster dan kegagalan pekerjaan. Untuk meminimalkan risiko keamanan, ikuti prinsip hak istimewa minimal saat mengonfigurasi izin di Konsol RAM.