温馨提示×

Hadoop在Debian怎调优

小樊
36
2026-09-23 19:56:05
栏目: 智能运维

在 Debian 上部署和调优 Hadoop,通常可以从操作系统层、Hadoop 配置层、JVM 层、网络与磁盘 I/O几个方面入手。下面给你一个偏实战的调优清单,适用于常见 Hadoop(HDFS + YARN + MapReduce)场景。


一、Debian 系统层调优

1. 内核参数(/etc/sysctl.conf)

# 文件句柄数
fs.file-max = 1000000

# TCP 优化
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

# 虚拟内存(避免 OOM kill)
vm.swappiness = 10
vm.overcommit_memory = 1

应用:

sysctl -p

2. 文件描述符 & 用户限制

/etc/security/limits.conf

hadoop soft nofile 65536
hadoop hard nofile 65536
hadoop soft nproc 65536
hadoop hard nproc 65536

3. 禁用透明大页(THP)

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

(建议写入 rc.local 或 systemd)

4. 磁盘与文件系统

  • 使用 ext4 / xfs
  • 挂载选项:
defaults,noatime,nodiratime
  • 多块磁盘做 JBOD(HDFS 推荐,不要 RAID)

二、HDFS 调优

hdfs-site.xml(重点)

<property>
  <name>dfs.replication</name>
  <value>3</value> <!-- 根据可靠性需求 -->
</property>

<property>
  <name>dfs.blocksize</name>
  <value>268435456</value> <!-- 256MB,大文件场景 -->
</property>

<property>
  <name>dfs.datanode.handler.count</name>
  <value>20</value>
</property>

<property>
  <name>dfs.namenode.handler.count</name>
  <value>40</value>
</property>

元数据 & 内存

  • NameNode 内存建议:
export HADOOP_NAMENODE_OPTS="-Xmx8g"

三、YARN 调优

yarn-site.xml

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>61440</value> <!-- 节点总内存 -->
</property>

<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>16384</value>
</property>

<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>16</value>
</property>

容器调度

  • 使用 Capacity Scheduler
  • 避免 container 过小(<=1GB)

四、MapReduce 调优

mapred-site.xml

<property>
  <name>mapreduce.task.io.sort.mb</name>
  <value>512</value>
</property>

<property>
  <name>mapreduce.map.memory.mb</name>
  <value>2048</value>
</property>

<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>4096</value>
</property>

小文件优化

  • 启用 CombineFileInputFormat
  • 使用 HAR / HBase / Iceberg

五、JVM & GC 调优

export HADOOP_OPTS="-XX:+UseG1GC -Xmx4g"

NameNode / ResourceManager:

-XX:+UseG1GC
-XX:MaxGCPauseMillis=200

六、网络 & 安全

  • 关闭防火墙或放行必要端口
  • 使用 千兆/万兆网络
  • 开启 net.ipv4.tcp_keepalive_*
  • 若启用 Kerberos,注意时钟同步(NTP)

七、监控 & 验证

  • JMX + Prometheus + Grafana
  • hdfs dfsadmin -report
  • yarn node -list
  • iostat -x 1

如果你愿意,可以告诉我:

  • Hadoop 版本(2.x / 3.x)
  • 集群规模 & 机器配置
  • 主要负载(批处理 / 实时 / 小文件)

我可以给你一份更针对性的 Debian + Hadoop 调优配置模板。

0 踩