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 non-uniform memory access (NUMA) untuk multiprocessing data Anda pada cluster. NUMAadalah pola desain memori komputer di mana prosesor dapat mengakses memori lokalnya sendiri lebih cepat daripada memori pada prosesor lain atau dibagi antar prosesor. Wadah YARN memiliki kinerja yang lebih baik NUMA karena mereka dapat mengikat ke NUMA node tertentu yang melayani semua alokasi memori berikutnya. Ini mengurangi jumlah waktu yang dimiliki cluster Anda untuk mengakses memori jarak jauh.

Anda dapat mengaktifkan NUMA dukungan untuk wadah YARN ketika mesin node pekerja adalah NUMA multi-node. Untuk mengonfirmasi apakah node pekerja adalah node tunggal 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 NUMA node. Ini tidak berlaku untuk contoh logam.

Untuk mengaktifkan NUMA kesadaran untuk wadah YARN
  1. Gunakan yarn-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 cluster 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 diperhatikanNUMA. Anda dapat memberi tahu mesin virtual Java (JVM) di setiap wadah dengan bendera. NUMA Misalnya, untuk memberi tahu JVM untuk digunakan NUMA dalam MapReduce pekerjaan, tambahkan properti berikut di. mapred-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 NUMA mengaktifkan, cari salah satu file NodeManager log dengan perintah berikut.

    grep "NUMA resources allocation is enabled," *

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

    grep "NUMA node" | grep <container_id>