优化 Debian 上的 Hadoop 需要从系统层面、Hadoop 配置层面、硬件资源、监控调优几个维度来做。下面给你一套比较实用、可落地的优化思路(适用于 Debian 10/11/12 + Hadoop 3.x)。
# 修改 limits
/etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
# 系统参数
/etc/sysctl.conf
fs.file-max = 2097152
vm.swappiness = 10
net.core.somaxconn = 4096
sysctl -p
systemctl disable bluetooth
systemctl disable cups
systemctl disable avahi-daemon
defaults,noatime,nodiratime
update-alternatives --config java
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.block.size</name>
<value>134217728</value> <!-- 128MB -->
</property>
<property>
<name>dfs.datanode.handler.count</name>
<value>20</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>40</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data1/dfs,/data2/dfs,/data3/dfs</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>61440</value> <!-- 示例:64G -->
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>16</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>61440</value>
</property>
yarn.scheduler.minimum-allocation-mb = 1024
yarn.nodemanager.pmem-check-enabled = false
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>4096</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>512</value>
</property>
export HADOOP_OPTS="-XX:+UseG1GC -Xmx8g"
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
htopiostat -x 1jstat -gcutilyarn top/etc/systemd/system/hadoop.service.d/limits.conf
net.ipv6.conf.all.disable_ipv6 = 1
apt install ntpdate
你可以告诉我:
我可以直接给你一份可复制的配置文件模板。