Fitur label node memungkinkan YARN mengisolasi berbagai jenis pekerjaan di lapisan fisik saat pekerjaan tersebut dijadwalkan untuk dijalankan pada YARN. Topik ini menjelaskan cara menambahkan label node berdasarkan tipe bisnis dan tipe node Anda.
Informasi latar belakang
YARN menyediakan antrian dan label node yang dapat digunakan untuk mengelola sumber daya serta menjadwalkan pekerjaan. Antrian dan label node memiliki peran berbeda namun saling melengkapi dalam pengelolaan sumber daya kluster.
Antrian digunakan untuk mengalokasikan sumber daya logis. Anda dapat menggunakannya untuk mendistribusikan sumber daya komputasi kluster ke berbagai kelompok pengguna atau aplikasi berdasarkan rasio tertentu. Hal ini memastikan distribusi sumber daya yang merata antar tim atau beban kerja dalam lingkungan kluster bersama.
Label node digunakan untuk menandai node tertentu dalam kluster dan mengalokasikan sumber daya secara lebih terperinci berdasarkan label. Fitur ini sangat penting untuk aplikasi dengan persyaratan khusus terhadap perangkat keras, seperti GPU dan ukuran memori.
Antrian digunakan untuk alokasi sumber daya dan penjadwalan pekerjaan, sedangkan label node digunakan untuk pengelompokan node dan isolasi pekerjaan. Kombinasi keduanya memungkinkan pengelolaan sumber daya yang fleksibel dan efisien.
Anda dapat menggunakan label node untuk mengelompokkan node berdasarkan kebutuhan bisnis dan status kluster. Dengan cara ini, Anda dapat mengelola dan menjadwalkan sumber daya kluster secara efisien. Misalnya, Anda dapat menambahkan label node untuk mengelompokkan pekerjaan sinkronisasi data, batch, dan real-time. Anda juga dapat menambahkan label node untuk mengelompokkan instance berdasarkan keluarga instance dioptimalkan CPU, optimasi memori, dan komputasi dioptimalkan dengan akselerasi GPU.
Prasyarat
Kluster E-MapReduce (EMR) yang mencakup layanan YARN telah dibuat. Untuk informasi lebih lanjut, lihat Buat Kluster.
Capacity Scheduler digunakan untuk YARN. Hanya Capacity Scheduler yang mendukung fitur label node.
Contoh
Informasi latar belakang
Sebuah perusahaan memerlukan dua antrian anak bernama warehouse dan analysis, serta dua partisi bernama batch dan streaming. Antrian warehouse memerlukan 60% sumber daya untuk memproses pekerjaan batch dan 70% sumber daya untuk memproses pekerjaan streaming. Antrian analysis memerlukan 30% sumber daya untuk memproses pekerjaan batch dan 20% sumber daya untuk memproses pekerjaan streaming. Partisi default YARN adalah DEFAULT_PARTITION. Partisi ini mengalokasikan 60% sumber daya ke antrian warehouse, 30% ke antrian analysis, serta menyisihkan 10% untuk kebutuhan bisnis lainnya. Untuk informasi lebih lanjut, lihat gambar berikut.
Dalam contoh ini, antrian digunakan bersama dengan label node untuk mengelola sumber daya secara fleksibel dan mengisolasi pekerjaan offline dari pekerjaan lain secara fisik. Hal ini memastikan performa dan stabilitas pekerjaan lain tidak terpengaruh. Contoh ini menggunakan kluster DataLake EMR V5.16.0. Prosedur untuk manajemen sumber daya menggunakan antrian dan label node pada jenis kluster EMR lainnya dari versi berbeda pada dasarnya sama dengan prosedur untuk kluster DataLake EMR V5.16.0.
Langkah 1: Edit antrian sumber daya
Masuk ke Konsol EMR. Pada halaman EMR on ECS, temukan kluster yang diinginkan dan klik Services di kolom Actions. Pada tab Layanan, klik YARN.
Pada halaman layanan YARN, klik tab Edit Resource Queue. Pada tab tersebut, klik Manage Queues.
Dalam kotak dialog Manage Child Queues, klik Tambah Antrian untuk menambahkan dua antrian bernama warehouse dan analysis.
Masukkan 60, 30, dan 10 di kolom Queue Capacity untuk antrian warehouse, analysis, dan default secara berurutan. Kemudian, pilih Started dari daftar drop-down antrian di kolom Status.

Gambar berikut menunjukkan konfigurasinya.

Klik Not Effective Yet. Dalam kotak dialog Configurations to Take Effect, klik refresh_queues di kolom Tindakan.

Langkah 2: Tambahkan partisi dan asosiasikan node dengan partisi
Klik tab Partitions. Pada tab tersebut, klik Add Partition untuk menambahkan partisi bernama streaming.
Dalam kotak dialog Add Partition, konfigurasikan parameter Partition Name, Partition Type, dan Associated Node Groups.

Nama Partisi: Masukkan streaming.
Tipe Partisi: Pilih Eksklusif dari daftar drop-down. Ini menunjukkan bahwa kontainer hanya dapat dialokasikan ke node partisi eksklusif jika partisi tersebut cocok secara tepat.
Grup Node Terkait: Pilih grup node yang ingin Anda asosiasikan dengan partisi. Dalam contoh ini, emr-task-3 dipilih. Grup node emr-task-3 berisi instance optimasi memori yang cocok untuk menjalankan pekerjaan real-time yang menyimpan sejumlah besar data antara dan memerlukan latensi rendah. Anda dapat mengasosiasikan grup node dengan partisi berdasarkan kebutuhan bisnis dan tipe instance Anda.
Ulangi operasi sebelumnya untuk menambahkan partisi bernama batch.

Klik Not Effective Yet. Dalam kotak dialog Configurations to Take Effect, klik refresh_labels di kolom Tindakan.

Lihat total sumber daya setiap partisi di kolom Total Resources setelah konfigurasi diterapkan.

Langkah 3: Aktifkan manajemen asosiasi partisi-antrian
Pada tab Edit Resource Queue, pilih partisi batch dan streaming dari daftar drop-down Pilih Partisi secara berurutan dan aktifkan Enable Partition-queue Association Management.
Dalam kotak dialog Enable Partition-queue Association Management, tentukan kapasitas antrian untuk setiap partisi di kolom Queue Capacity dan klik OK.
batch: Di kolom Queue Capacity, masukkan 30 untuk antrian analysis, 60 untuk antrian warehouse, dan 10 untuk antrian default.
streaming: Di kolom Queue Capacity, masukkan 20 untuk antrian analysis, 70 untuk antrian warehouse, dan 10 untuk antrian default.
CatatanDalam contoh ini, semua antrian memiliki izin untuk berjalan di setiap partisi. Jika Anda ingin partisi tertentu hanya menjalankan pekerjaan yang dikirim oleh antrian tertentu, Anda dapat menetapkan kapasitas antrian menjadi 0.
Klik Not Effective Yet. Dalam kotak dialog Configurations to Take Effect, klik refresh_queues di kolom Tindakan.
Periksa apakah label node berlaku pada antarmuka web YARN.
Hasil pada halaman Label Node

Hasil pada halaman Penjadwal

Langkah 4: Kirim pekerjaan ke partisi tertentu
Setelah Anda mengonfigurasi antrian dan label node untuk kluster Anda, Anda dapat mengirim pekerjaan ke antrian dan node tertentu untuk dijalankan.
Masuk ke node master kluster Anda dan buka direktori instalasi Spark. Dalam contoh ini, direktorinya adalah /opt/apps/SPARK3/spark-3.3.1-hadoop3.2-1.1.1.
cd /opt/apps/SPARK3/spark-3.3.1-hadoop3.2-1.1.1Unggah paket JAR yang diperlukan untuk mengirim pekerjaan Spark. Bagian ini menjelaskan cara menggunakan spark-submit untuk mengirim pekerjaan Spark.
./bin/spark-submit --class org.apache.spark.examples.SparkLR --master yarn --deploy-mode cluster --driver-memory 1g --executor-memory 2g --conf spark.yarn.am.nodeLabelExpression=batch --conf spark.yarn.executor.nodeLabelExpression=batch --queue=warehouse examples/jars/spark-examples_2.12-3.3.1.jarParameter
Deskripsi
class
Kelas utama dari sebuah aplikasi. Contoh: org.apache.spark.examples.SparkLR.
master
Lokasi tempat pekerjaan yang dikirimkan dijalankan. Tetapkan nilainya ke YARN.
deploy-mode
Lokasi tempat driver dimulai. Tetapkan nilainya ke cluster.
driver-memory
Ukuran memori driver. Tetapkan nilainya ke 1g.
executor-memory
Ukuran memori setiap executor. Tetapkan nilainya ke 2g.
spark.yarn.am.nodeLabelExpression
Label node tempat ApplicationMaster (AM) berjalan. Tetapkan nilainya ke batch.
spark.yarn.executor.nodeLabelExpression
Label node tempat executor berjalan. Tetapkan nilainya ke batch.
queue
Antrian tempat pekerjaan dikirimkan. Tetapkan nilainya ke warehouse.
CatatanJika Anda hanya menentukan antrian sebelum mengirimkan pekerjaan, pekerjaan akan dikirimkan ke partisi default dari antrian tersebut. Anda dapat mengklik Edit di kolom Tindakan antrian pada tab Edit Resource Queue untuk mengubah partisi default antrian berdasarkan kebutuhan bisnis Anda.
Pada antarmuka web YARN, periksa apakah pekerjaan SparkLR dikirimkan ke antrian warehouse dan dijalankan pada partisi batch.

Anda dapat menggunakan antrian bersama dengan label node YARN untuk menerapkan isolasi logis dan fisik sumber daya untuk pekerjaan Anda. Hal ini mencegah saling ganggu antara pekerjaan yang berbeda untuk memastikan performa dan stabilitas pekerjaan.
FAQ
Apa yang harus saya lakukan jika pekerjaan tertentu tidak berjalan pada partisi tertentu ketika saya menggunakan spark-submit untuk mengirimkan pekerjaan?
Periksa apakah parameter spark.yarn.executor.nodeLabelExpression ditambahkan ke perintah yang digunakan untuk mengirimkan pekerjaan.
Periksa apakah konfigurasi antrian dan partisi telah berlaku.
Apa yang harus saya lakukan jika status pekerjaan selalu ditampilkan sebagai ACCEPTED ketika saya menggunakan spark-submit untuk mengirimkan pekerjaan?
Periksa apakah antrian tempat pekerjaan dikirimkan memiliki sumber daya yang cukup. Jika antrian memiliki sumber daya yang tidak mencukupi, tunggu hingga pekerjaan lain selesai dan sumber daya dilepaskan sebelum Anda mengirimkan pekerjaan.
Jika antrian memiliki sumber daya yang cukup, klik ID pekerjaan spesifik pada antarmuka web YARN dan periksa deskripsi parameter Diagnostics. Jika deskripsi berisi pesan "Queue's AM resource limit exceeded", antrian memiliki sumber daya yang cukup tetapi sumber daya AM tidak mencukupi. Sumber daya antrian dialokasikan ke AM dan executor. Sumber daya AM digunakan untuk mengirimkan aplikasi utama, dan sumber daya executor digunakan untuk memproses pekerjaan. Dalam kasus ini, Anda harus menyesuaikan rasio sumber daya antrian. Anda dapat secara tepat meningkatkan rasio sumber daya AM untuk memastikan bahwa pekerjaan Spark berhasil dikirimkan.

Untuk menyesuaikan rasio sumber daya antrian, temukan file capacity_scheduler.xml pada tab Konfigurasi halaman layanan YARN dan ubah nilai item konfigurasi yarn.scheduler.capacity.maximum-am-resource-percent. Sebagai contoh, Anda dapat mengubah nilai item konfigurasi dari 0.25 menjadi 0.5.

CatatanAnda dapat menyesuaikan rasio sumber daya default AM berdasarkan kebutuhan bisnis Anda. Sebagai contoh, jika ada banyak pekerjaan kecil di kluster Anda, Anda dapat secara tepat meningkatkan rasio sumber daya AM.
Referensi
Untuk informasi lebih lanjut tentang penjadwal YARN, lihat Penjadwal YARN.
Untuk informasi lebih lanjut tentang fitur label node YARN, lihat Label Node.