Gateway mengirimkan job ke kluster komputasi dan menyediakan isolasi keamanan. E-MapReduce menyediakan alat bernama EMR-CLI untuk menyederhanakan penerapan gateway. Alat ini membuat instance Alibaba Cloud ECS dan menerapkan lingkungan gateway pada instance tersebut. Topik ini menjelaskan cara menerapkan lingkungan gateway setelah Anda membuat kluster DataLake, Dataflow, atau OLAP.
Tiga mode penerapan Gateway dan panduan pemilihan
Gateway merupakan lapisan isolasi pengiriman job EMR yang memberikan manfaat inti berikut:
Pemisahan beban kerja client dari layanan inti kluster
Gateway memisahkan operasi client, seperti
spark-submit,hive -f, danyarn application, dari node master atau Resource Manager.Menerapkan isolasi lingkungan multi-tenant
Gateway memungkinkan Anda mengonfigurasi lingkungan runtime independen untuk pengguna atau departemen yang berbeda.
Meningkatkan stabilitas dan kemudahan pemeliharaan kluster
Gateway mencegah masalah seperti pengiriman berfrekuensi tinggi, debugging skrip, konflik lingkungan, atau resource contention memengaruhi layanan kritis seperti YARN ResourceManager dan Hadoop Distributed File System (HDFS) NameNode.
EMR menyediakan tiga mode Gateway. Setiap mode cocok untuk jenis kluster, versi, dan kebutuhan arsitektur yang berbeda.
Jenis | Jenis kluster yang didukung dan persyaratan versi | Metode penerapan dan fitur utama | Skenario dan rekomendasi |
Gateway node group | Hanya kluster berikut yang didukung:
| • Tambahkan node group langsung ke kluster yang sudah ada. Untuk informasi selengkapnya, lihat Manage node groups. | Direkomendasikan: Paling cocok untuk menambahkan titik masuk pengiriman yang aman dan terisolasi secara cepat ke kluster DataLake atau DataFlow yang sudah ada. Opsi ini menawarkan biaya O&M terendah dan memastikan konsistensi konfigurasi yang tinggi. |
Gateway environment | Mendukung kluster DataLake, DataFlow, Custom, dan OLAP | • Terapkan secara manual pada instance ECS. Untuk informasi selengkapnya, lihat Use the EMR command-line interface (CLI) to customize a Gateway environment deployment. | Alternatif standar ketika kluster tidak mendukung Gateway node groups. |
Gateway cluster | Hanya mendukung kluster Hadoop dan Kafka |
| Cocok untuk kluster Hadoop dan Kafka. |
Prasyarat
Kluster komputasi DataLake, Dataflow, OLAP, atau Custom telah dibuat di E-MapReduce, dan kluster berada dalam status Running. Untuk informasi selengkapnya tentang cara membuat kluster, lihat Create a cluster.
Batasan
Jenis kluster: Metode ini hanya untuk menerapkan lingkungan gateway pada kluster DataLake, Dataflow, OLAP, atau Custom. Jika jenis dan versi kluster Anda kompatibel, kami merekomendasikan penggunaan Gateway node group.
Untuk informasi selengkapnya tentang cara menerapkan lingkungan gateway untuk kluster Hadoop dan Kafka yang sudah ada, lihat Create a gateway cluster.
CatatanAnda hanya dapat membuat kluster Hadoop atau Kafka jika Akun Alibaba Cloud Anda telah membuat kluster tersebut sebelum pukul 17.00 (UTC+8) pada 19 Desember 2022. Jika akun Anda belum pernah membuat jenis kluster ini sebelum waktu tersebut, Anda tidak dapat lagi membuatnya.
Pemasangan overwrite: EMR-CLI menerapkan client gateway dalam mode overwrite. Jika Anda menerapkan ulang gateway pada instance ECS yang sudah memiliki gateway, client baru akan menimpa client yang ada di direktori yang sama.
Penerapan independen: Jangan gunakan instance ECS yang sudah ada di kluster EMR, seperti node Master, Core, atau Task, sebagai mesin gateway. Praktik ini mencegah lingkungan client mengganggu operasi normal layanan kluster.
Layanan yang didukung: Anda dapat menggunakan metode ini untuk menerapkan client untuk layanan berikut: HDFS, YARN, HBase, HIVE, SPARK2, SPARK3, JINDOSDK, FLINK, SQOOP, IMPALA, PRESTO, HUDI, ICEBERG, TEZ, dan DELTALAKE.
Terapkan gateway untuk pertama kali
Buat instance ECS di Konsol ECS. Untuk informasi selengkapnya, lihat Create an instance using the wizard.
CatatanInstance ECS yang dibuat tidak memerlukan akses jaringan publik.
Pengaturan parameter yang direkomendasikan adalah sebagai berikut.
Parameter
Deskripsi
Region dan zona
Harus sama dengan region dan zona kluster EMR.
Image
Harus sesuai dengan sistem instance EMR.
Disk sistem
Kami merekomendasikan penggunaan enterprise SSD (ESSD) minimal 60 GiB.
Jaringan
Harus sama dengan VPC kluster EMR.
Security group
Harus sama dengan security group dari instance group Master kluster EMR. Hal ini memastikan konektivitas jaringan antara instance ECS dan kluster EMR.
Buat peran RAM ECS khusus untuk EMR Gateway.
Masuk ke RAM console sebagai administrator RAM.
Pada panel navigasi kiri, pilih .
Pada halaman Roles, klik Create Role.
Pada panel Create Role, atur Trusted Entity Type ke Alibaba Cloud Service dan Trusted Service ke ECS. Lalu, klik OK.
Masukkan Role Name, misalnya ECSForEMRGatewayRole, lalu klik OK.
Berikan izin kepada peran RAM.
Pada tab Permission Management, klik Grant Permission.
Pada panel Grant Permission, pilih AliyunEMRFullAccess, AliyunOSSFullAccess, dan AliyunDLFFullAccess dari System Policy, lalu klik OK.

Klik Close.
Berikan peran RAM kepada instance ECS.
Masuk ke ECS console.
Pada panel navigasi kiri, pilih .
Pada bilah navigasi atas, pilih region.
Temukan instance ECS baru dan pilih .
Pada kotak dialog yang muncul, pilih peran ECSForEMRGatewayRole dan klik OK.
Hubungkan ke instance ECS. Untuk informasi selengkapnya, lihat Connect to an ECS instance.
Jalankan perintah berikut untuk menginstal EMR-CLI.
regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}Jika instalasi berhasil, informasi berikut dikembalikan.
install emrcli successJalankan perintah berikut untuk menerapkan client EMR Gateway.
emrcli gateway deploy \ --clusterId <ClusterId> \ --appNames <ApplicationName>Ubah parameter berikut sesuai kebutuhan.
Parameter
Wajib
Deskripsi
clusterId
Ya
ID kluster yang dibuat di EMR.
appNames
Tidak
Nama aplikasi. Untuk menentukan beberapa aplikasi, pisahkan dengan koma (,), contohnya
HDFS,YARN.Jika Anda tidak menentukan parameter ini, client untuk semua aplikasi yang didukung di kluster, seperti Hive dan HDFS, akan diterapkan secara default.
Jika penerapan berhasil, informasi berikut dikembalikan.
deployGateway successPentingSetelah gateway diinstal, variabel lingkungan sistem
JAVA_HOMEdiubah menjadi/usr/lib/jvm/java-1.8.0. Anda dapat mengubah variabel ini di file /etc/profile.d/emr_env.sh. Namun, perubahan ini dapat memengaruhi fitur gateway. Lakukan dengan hati-hati.Masuk kembali ke instance ECS agar perubahan pada variabel lingkungan sistem berlaku.
Opsional: Konfigurasikan resolusi nama domain untuk node gateway.
PentingLangkah ini wajib jika gateway mencakup layanan Spark.
Tambahkan zona. Untuk informasi selengkapnya, lihat Add a built-in authoritative domain name.
Tambahkan Rekaman DNS. Untuk informasi selengkapnya, lihat Add a DNS record.
Parameter dijelaskan dalam tabel berikut.
Parameter
Deskripsi
Record Type
Gunakan nilai default A.
Host Record
Masukkan hostname mesin gateway. Contohnya, iZ2zea8r0aht2vzbqci****.
Anda dapat menjalankan perintah
hostnameuntuk mendapatkan hostname.Record Value
Masukkan Alamat IP pribadi mesin gateway.
Anda dapat melihatnya di halaman manajemen node.
TTL Value
Gunakan nilai default.
Kelola lingkungan gateway
Setelah Anda membuat gateway, jika layanan baru ditambahkan ke kluster komputasi terkait atau konfigurasi layanannya diubah, Anda dapat menggunakan perintah berikut untuk memperbarui komponen client atau menyinkronkan konfigurasi terbaru.
Perbarui komponen client
Jika layanan baru, seperti Flink, ditambahkan ke kluster EMR, Anda dapat menginstal client yang sesuai secara inkremental pada node gateway. Perintah deploy akan menimpa konfigurasi aplikasi yang sudah diinstal dan menginstal aplikasi baru secara inkremental.
# Contoh: Tambahkan client FLINK ke lingkungan yang sudah memiliki HDFS dan YARN.
emrcli gateway deploy \
--clusterId <ClusterId> \
--appNames HDFS,YARN,FLINKJika pembaruan berhasil, informasi berikut dikembalikan.
deployGateway successSinkronkan konfigurasi yang dimodifikasi dari kluster EMR
Jika konfigurasi layanan di kluster EMR diubah, misalnya Anda memodifikasi core-site.xml di Konsol EMR, Anda harus menyinkronkan konfigurasi baru tersebut ke node gateway secara manual.
Menyinkronkan konfigurasi akan menimpa konfigurasi yang ada di gateway. Lakukan dengan hati-hati.
# Jalankan perintah sinkronisasi.
emrcli gateway refreshConfigs \
--clusterId <ClusterId> \
--appNames <ApplicationName> # Opsional. Tentukan aplikasi yang akan disinkronkan.Jika sinkronisasi berhasil, informasi berikut dikembalikan:
refreshConfiguration successKelola EMR-CLI
Lihat versi EMR-CLI
Anda dapat menjalankan perintah berikut untuk melihat informasi versi EMR-CLI.
emrcli versionInformasi serupa berikut dikembalikan.
2.0.0Upgrade EMR-CLI
Untuk melakukan upgrade EMR-CLI ke versi terbaru secara otomatis, ulangi langkah instalasi yang dijelaskan di bagian Deploy a gateway for the first time.
FAQ
Q: Bagaimana cara mengganti kluster komputasi?
A: Untuk mengganti kluster komputasi, lakukan langkah-langkah berikut:
Gunakan perintah
-mvuntuk membackup file dari kluster lama (kluster yang digunakan sebelum pergantian) secara manual guna mencegah kehilangan data. File tersebut mencakup direktori/opt/apps, direktori/etc/taihao-apps, dan file/etc/profile.d/yarn.sh.Untuk menerapkan ulang kluster komputasi, lakukan kembali operasi dalam topik ini.
> Instance Settings > Grant/Revoke RAM Role