Aktifkan kesadaran akses memori yang tidak seragam untuk wadah YARN - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktifkan kesadaran akses memori yang tidak seragam untuk wadah YARN

Dengan Amazon EMR versi 6.x dan yang lebih baru, Anda dapat menggunakan akses memori non-seragam (NUMA) untuk memproses data Anda secara multifungsi pada klaster. NUMA adalah pola desain memori komputer di mana prosesor dapat mengakses memori lokalnya sendiri lebih cepat daripada memori pada prosesor lain atau dibagikan antar prosesor. Wadah YARN memiliki kinerja yang lebih baik dengan NUMA karena mereka dapat mengikat ke node NUMA tertentu yang melayani semua alokasi memori berikutnya. Ini mengurangi berapa kali klaster Anda harus mengakses memori jarak jauh.

Anda dapat mengaktifkan dukungan NUMA untuk wadah YARN ketika mesin node pekerja adalah simpul multi-NUMA. Untuk mengonfirmasi apakah node pekerja adalah simpul Single-numa atau multi-NUMA, jalankan perintah berikut.

lscpu | grep -i numa NUMA node(s): 2

Secara umum, instance yang lebih besar dari 12x memiliki dua node NUMA. Ini tidak berlaku untuk instans logam.

Untuk mengaktifkan kesadaran NUMA untuk wadah YARN
  1. Gunakanyarn-site konfigurasi berikut di klaster Amazon EMR 6.x Anda.

    [ { "classification":"yarn-site", "properties":{ "yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user":"yarn", "yarn.nodemanager.linux-container-executor.group":"yarn", "yarn.nodemanager.container-executor.class":"org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor", "yarn.nodemanager.numa-awareness.enabled":"true", "yarn.nodemanager.numa-awareness.numactl.cmd":"/usr/bin/numactl", "yarn.nodemanager.numa-awareness.read-topology":"true" }, "configurations":[] } ]
  2. Berikan tindakan bootstrap berikut di klaster Anda.

    #!/bin/bash sudo yum -y install numactl echo 1 | sudo tee /proc/sys/kernel/numa_balancing echo "banned.users=mapred,bin,hdfs" >> /etc/hadoop/conf/container-executor.cfg rm -rf /var/log/hadoop-yarn/ sudo chown -R yarn:hadoop /var/log/hadoop-yarn/ sudo chmod 755 -R /var/log/hadoop-yarn/ sudo chmod 6050 /etc/hadoop/conf/container-executor.cfg mkdir /mnt/yarn && sudo chmod 755 -R /mnt/yarn && sudo chown -R yarn:hadoop /mnt/yarn mkdir /mnt1/yarn && sudo chmod 755 -R /mnt1/yarn && sudo chown -R yarn:hadoop /mnt1/yarn mkdir /mnt2/yarn && sudo chmod 755 -R /mnt2/yarn && sudo chown -R yarn:hadoop /mnt2/yarn
  3. Setiap wadah harus waspada terhadap NUMA. Anda dapat memberi tahu mesin virtual Java (JVM) di setiap wadah dengan bendera NUMA. Misalnya, untuk memberi tahu JVM untuk menggunakan NUMA dalamMapReduce pekerjaan, tambahkan propeties berikut dimapred-site.xml.

    <property> <name>mapreduce.reduce.java.opts</name> <value>-XX:+UseNUMA</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-XX:+UseNUMA</value> </property>
  4. Untuk memverifikasi bahwa Anda telah mengaktifkan NUMA, cari salah satu file NodeManager log dengan perintah berikut.

    grep "NUMA resources allocation is enabled," *

    Untuk memverifikasi bahwa NodeManager telah menetapkan sumber daya node NUMA ke wadah, cariNodeManager log dengan perintah berikut, ganti<container_id> dengan ID kontainer Anda sendiri.

    grep "NUMA node" | grep <container_id>