All Products
Search
Document Center

E-MapReduce:Mempartisi Node Menggunakan Label Node

Last Updated:Mar 27, 2026

Label node memungkinkan YARN mengisolasi pekerjaan di lapisan fisik dengan mengarahkannya ke partisi node tertentu. Topik ini menjelaskan langkah-langkah konfigurasi antrian Capacity Scheduler YARN dan partisi berlabel node di E-MapReduce (EMR) untuk mencapai isolasi pekerjaan baik secara logis maupun fisik.

Latar Belakang

YARN menyediakan dua mekanisme pelengkap untuk manajemen sumber daya: antrian dan label node.

Antrian menangani alokasi sumber daya secara logis. Antrian membagi sumber daya komputasi kluster di antara kelompok pengguna atau aplikasi berdasarkan rasio yang telah ditentukan, sehingga tim dan jenis workload berbeda mendapatkan bagian yang adil dalam kluster bersama.

Label node mengelompokkan node fisik menjadi partisi. Dengan memberi tag pada node, Anda dapat mengarahkan pekerjaan ke perangkat keras tertentu—misalnya, mengarahkan pekerjaan real-time yang intensif memori ke instans optimasi memori, dan pekerjaan batch ke instans komputasi standar.

Penggunaan antrian dan label node secara bersamaan memberikan isolasi logis dan fisik: antrian mengatur siapa yang mendapatkan berapa banyak, sedangkan label node mengontrol di mana pekerjaan benar-benar dijalankan.

Jenis partisi

Saat membuat partisi, Anda dapat memilih Exclusive sebagai tipe partisi. Dengan partisi Exclusive, kontainer dialokasikan ke node dalam partisi hanya jika terdapat kecocokan persis. Hal ini memastikan bahwa pekerjaan diisolasi secara fisik ke node yang ditentukan.

Untuk isolasi workload—kasus penggunaan utama dalam topik ini—gunakan partisi Exclusive.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster EMR dengan layanan YARN yang sedang berjalan

  • Capacity Scheduler dikonfigurasi sebagai penjadwal YARN (hanya Capacity Scheduler yang mendukung label node)

Konfigurasi antrian dan label node

Contoh ini menggunakan kluster DataLake yang menjalankan EMR V5.16.0. Langkah-langkah yang sama berlaku untuk jenis dan versi kluster EMR lainnya.

Skenario: Sebuah perusahaan memerlukan dua antrian anak (warehouse dan analysis) serta dua partisi (batch dan streaming) untuk mengisolasi pekerjaan batch offline dari pekerjaan streaming real-time.

Target alokasi sumber daya:

image

Konfigurasi mencakup empat langkah:

  1. Edit antrian sumber daya

  2. Tambahkan partisi dan kaitkan node

  3. Aktifkan manajemen asosiasi partisi-antrian

  4. Kirim pekerjaan ke partisi tertentu

Langkah 1: Edit antrian sumber daya

  1. Masuk ke Konsol EMR. Pada halaman EMR on ECS, temukan kluster Anda dan klik Services di kolom Actions. Di tab Services, klik YARN.

  2. Pada halaman layanan YARN, klik tab Edit Resource Queue, lalu klik Manage Queues.

  3. Pada kotak dialog Manage Child Queues, klik Add Queue untuk membuat antrian warehouse dan analysis. Atur Queue Capacity untuk setiap antrian, dan atur Status ke Started:

    Queue Queue capacity
    warehouse 60
    analysis 30
    default 10

    image

    image

  4. Klik Not Effective Yet. Pada kotak dialog Configurations to Take Effect, klik refresh_queues di kolom Actions.

    image

Langkah 2: Tambahkan partisi dan kaitkan node

  1. Klik tab Partitions, lalu klik Add Partition untuk membuat partisi streaming. Pada kotak dialog Add Partition, konfigurasikan parameter berikut:

    • Partition Name: streaming

    • Partition Type: Exclusive — kontainer dialokasikan ke node dalam partisi ini hanya jika terdapat kecocokan persis.

    • Associated Node Groups: Pilih kelompok node yang akan dikaitkan dengan partisi ini. Dalam contoh ini, emr-task-3 dipilih. Kelompok node emr-task-3 berisi instans optimasi memori yang cocok untuk pekerjaan real-time yang menyimpan data antara dalam jumlah besar dan memerlukan latensi rendah. Pilih kelompok node berdasarkan tipe instans dan kebutuhan workload Anda.

    image

  2. Ulangi langkah sebelumnya untuk menambahkan partisi batch.

    image

  3. Klik Not Effective Yet. Pada kotak dialog Configurations to Take Effect, klik refresh_labels di kolom Actions.

    image

  4. Setelah konfigurasi diterapkan, konfirmasi total sumber daya untuk setiap partisi di kolom Total Resources.

    image

Langkah 3: Aktifkan manajemen asosiasi partisi-antrian

  1. Di tab Edit Resource Queue, pilih partisi batch dari daftar drop-down Select Partition, lalu aktifkan Enable Partition-queue Association Management.

  2. Pada kotak dialog Enable Partition-queue Association Management, atur Queue Capacity untuk setiap antrian, lalu klik OK. Ulangi langkah ini untuk partisi streaming.

    Dalam contoh ini, semua antrian memiliki akses ke kedua partisi. Untuk membatasi partisi hanya untuk pekerjaan dari antrian tertentu, atur kapasitas antrian lainnya ke 0.
    Queue Capacity in batch partition Capacity in streaming partition
    warehouse 60 70
    analysis 30 20
    default 10 10

    image

  3. Klik Not Effective Yet. Pada kotak dialog Configurations to Take Effect, klik refresh_queues di kolom Actions.

  4. Verifikasi bahwa label node aktif di antarmuka web YARN.

    • Halaman Node Labels: mengonfirmasi partisi dan jenisnya. image

    • Halaman Scheduler: mengonfirmasi alokasi kapasitas antrian-partisi. image

Langkah 4: Kirim pekerjaan ke partisi tertentu

Dengan antrian dan label node telah dikonfigurasi, kirim pekerjaan ke antrian dan partisi tertentu menggunakan parameter spark.yarn.am.nodeLabelExpression dan spark.yarn.executor.nodeLabelExpression.

  1. Masuk ke node master dan buka direktori instalasi Spark:

    cd /opt/apps/SPARK3/spark-3.3.1-hadoop3.2-1.1.1
  2. Kirim pekerjaan Spark yang ditujukan ke antrian warehouse dan partisi batch:

    Jika Anda hanya menentukan antrian tanpa ekspresi label node, pekerjaan akan berjalan di partisi default antrian tersebut. Untuk mengubah partisi default suatu antrian, klik Edit di kolom Actions antrian tersebut di tab Edit Resource Queue.
    Parameter Description Value in this example
    --class Main class of the application org.apache.spark.examples.SparkLR
    --master Resource manager yarn
    --deploy-mode Location where the driver starts cluster
    --driver-memory Driver memory 1g
    --executor-memory Memory per executor 2g
    --conf spark.yarn.am.nodeLabelExpression Partition for the AM batch
    --conf spark.yarn.executor.nodeLabelExpression Partition for executors batch
    --queue Target queue warehouse
    ./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.jar

    Kedua parameter spark.yarn.am.nodeLabelExpression dan spark.yarn.executor.nodeLabelExpression harus diatur agar ApplicationMaster (AM) dan executor diarahkan ke partisi target.

  3. Di antarmuka web YARN, konfirmasi bahwa pekerjaan SparkLR berjalan di antrian warehouse pada partisi batch.

    image

FAQ

Pekerjaan tidak berjalan di partisi yang diharapkan saat menggunakan spark-submit.

Periksa apakah kedua parameter spark.yarn.am.nodeLabelExpression dan spark.yarn.executor.nodeLabelExpression telah disertakan dalam perintah pengiriman. Jika hanya antrian yang ditentukan, pekerjaan akan berjalan di partisi default antrian tersebut, bukan di partisi bernama. Pastikan juga bahwa konfigurasi antrian dan partisi telah diterapkan dengan melakukan refresh.

Pekerjaan tetap dalam status ACCEPTED dan tidak pernah dimulai.

Pertama, periksa apakah antrian target memiliki sumber daya yang cukup. Jika pekerjaan lain sedang mengonsumsi kapasitas antrian, tunggu hingga pekerjaan tersebut selesai sebelum mengirim ulang.

Jika antrian tampak memiliki sumber daya yang cukup, buka pekerjaan tersebut di antarmuka web YARN dan periksa bidang Diagnostics. Jika menampilkan Queue's AM resource limit exceeded, artinya antrian memiliki sumber daya tetapi persentase sumber daya ApplicationMaster terlalu rendah. Kolam sumber daya AM terpisah dari kolam executor—ketika terlalu banyak pekerjaan bersaing untuk slot AM, pekerjaan baru akan macet.

image

Untuk meningkatkan persentase sumber daya AM, cari capacity_scheduler.xml di tab Configure pada halaman layanan YARN dan naikkan nilai yarn.scheduler.capacity.maximum-am-resource-percent. Misalnya, ubah dari 0.25 menjadi 0.5.

image
Sesuaikan persentase sumber daya AM berdasarkan pola workload Anda. Kluster yang menjalankan banyak pekerjaan kecil berdurasi pendek biasanya mendapat manfaat dari persentase sumber daya AM yang lebih tinggi.

Langkah selanjutnya