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 yang tidak seragam (NUMA) untuk multiprocessing data Anda pada cluster. NUMA adalah 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 dengan NUMA karena mereka dapat mengikat ke yang spesifik NUMA node yang melayani semua alokasi memori berikutnya. Ini mengurangi jumlah waktu yang dimiliki cluster Anda untuk mengakses memori jarak jauh.
Anda dapat menghidupkan NUMA dukungan untuk wadah YARN ketika mesin node pekerja adalah multi-NUMA simpul. Untuk mengonfirmasi apakah node pekerja adalah satu-NUMA atau multi-NUMA node, jalankan perintah berikut.
lscpu | grep -i numa
NUMA node(s): 2
Secara umum, contoh yang lebih besar dari 12x memiliki dua NUMA simpul. Ini tidak berlaku untuk contoh logam.
Untuk menghidupkan NUMA kesadaran untuk wadah YARN
-
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":[] } ]
-
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
-
Setiap wadah harus diwaspadai NUMA. Anda dapat memberi tahu mesin virtual Java (JVM) di setiap wadah dengan NUMA bendera. Misalnya, untuk memberi tahu JVM untuk digunakan NUMA dalam sebuah MapReduce job, 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>
-
Untuk memverifikasi bahwa Anda berpaling NUMA pada, cari salah satu NodeManager log file dengan perintah berikut.
grep "NUMA resources allocation is enabled," *
Untuk memverifikasi bahwa NodeManager telah ditetapkan NUMA sumber daya node ke wadah, cari NodeManager log dengan perintah berikut, ganti
dengan ID kontainer Anda sendiri.<container_id>
grep "NUMA node" | grep
<container_id>