在 Debian 上“调 Hadoop 参数”通常分几种情况:改 Hadoop 自身配置参数、改 JVM / 系统参数、改 Linux 系统限制来适配 Hadoop。下面按实际运维场景给你一套清晰做法。
Hadoop 参数主要在以下配置文件里(路径取决于安装方式):
/etc/hadoop/
# 或
$HADOOP_HOME/etc/hadoop/
核心文件:
core-site.xml —— 全局参数hdfs-site.xml —— HDFS 参数yarn-site.xml —— YARN 参数mapred-site.xml —— MapReduce 参数hadoop-env.sh —— JVM / 环境变量yarn-env.sh —— YARN JVM 参数例如调 HDFS 块大小:
<property>
<name>dfs.blocksize</name>
<value>134217728</value> <!-- 128MB -->
</property>
YARN 容器内存:
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
</property>
# 停止服务
stop-dfs.sh
stop-yarn.sh
# 修改配置后启动
start-dfs.sh
start-yarn.sh
如果是 systemd(Debian 较新版本):
systemctl restart hadoop-namenode
systemctl restart hadoop-datanode
systemctl restart hadoop-resourcemanager
systemctl restart hadoop-nodemanager
export HADOOP_HEAPSIZE=2048
export HADOOP_OPTS="-Xms1g -Xmx2g -XX:+UseG1GC"
export YARN_RESOURCEMANAGER_HEAPSIZE=2048
export YARN_NODEMANAGER_HEAPSIZE=2048
改完重启 YARN。
ulimit -n 65536
永久生效:
/etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
swapoff -a
永久:
注释 /etc/fstab 中 swap 行
sysctl -w vm.swappiness=10
sysctl -w net.core.somaxconn=4096
写入:
/etc/sysctl.conf
| 场景 | 参数 |
|---|---|
| NameNode 内存不够 | HADOOP_HEAPSIZE |
| YARN 跑不动任务 | yarn.nodemanager.resource.memory-mb |
| HDFS 写入慢 | dfs.replication, dfs.blocksize |
| 小文件太多 | 调 mapreduce.input.fileinputformat.split.minsize |
| GC 频繁 | 换 G1GC |
hdfs getconf -confKey dfs.blocksize
yarn config -get yarn.nodemanager.resource.memory-mb
如果你能告诉我:
我可以直接给你精准参数模板。