温馨提示×

centos怎样调优hdfs参数

小樊
37
2026-09-12 08:00:35
栏目: 智能运维

CentOS 上调优 HDFS 参数,通常是从 操作系统层(CentOS)Hadoop/HDFS 配置层 两方面来做。下面按“先看系统,再看 HDFS”的顺序说明。


一、CentOS 系统层调优(HDFS 运行基础)

1. 文件描述符(ulimit)

HDFS(尤其是 NameNode、DataNode)会打开大量文件。

# 查看
ulimit -n

# 修改(推荐 65536 或更高)
vim /etc/security/limits.conf

添加:

* soft nofile 65536
* hard nofile 65536

2. 禁用 SELinux(生产常见)

getenforce
vim /etc/selinux/config
SELINUX=disabled

然后重启或临时关闭:

setenforce 0

3. 关闭防火墙(或放行端口)

systemctl stop firewalld
systemctl disable firewalld

或放行 HDFS 端口(如 8020、50010、50070 等)


4. 磁盘 I/O 调度策略

HDD 推荐 deadline,SSD 推荐 noop

cat /sys/block/sd*/queue/scheduler

临时:

echo deadline > /sys/block/sda/queue/scheduler

永久(CentOS 7):

vim /etc/default/grub
# 添加 elevator=deadline
grub2-mkconfig -o /boot/grub2/grub.cfg

5. 禁用 swap(重要)

swapoff -a
vim /etc/fstab   # 注释 swap 行

6. 网络参数优化

vim /etc/sysctl.conf
net.core.somaxconn = 4096
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 600
sysctl -p

二、HDFS 核心参数调优(hdfs-site.xml / core-site.xml)

配置文件位置(示例):

$HADOOP_HOME/etc/hadoop/hdfs-site.xml
$HADOOP_HOME/etc/hadoop/core-site.xml

1. NameNode 内存与 RPC 性能

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

一般公式:

handler.count = 20 * log2(集群节点数)

2. DataNode 并发与带宽

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

<property>
  <name>dfs.datanode.max.transfer.threads</name>
  <value>8192</value>
</property>

<property>
  <name>dfs.datanode.balance.bandwidthPerSec</name>
  <value>104857600</value> <!-- 100MB/s -->
</property>

3. 块大小(Block Size)

大文件场景:

<property>
  <name>dfs.blocksize</name>
  <value>268435456</value> <!-- 256MB -->
</property>

4. 副本数

<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

5. 心跳与超时

<property>
  <name>dfs.heartbeat.interval</name>
  <value>3</value>
</property>

<property>
  <name>dfs.namenode.heartbeat.recheck-interval</name>
  <value>300000</value>
</property>

6. JVM 堆内存(非常重要)

hadoop-env.sh

export HADOOP_NAMENODE_OPTS="-Xmx8g -Xms8g"
export HADOOP_DATANODE_OPTS="-Xmx4g -Xms4g"

三、调优后操作

# 分发配置
scp hdfs-site.xml core-site.xml hadoop-env.sh slave1:/path

# 重启
stop-dfs.sh
start-dfs.sh

四、常用检查命令

hdfs dfsadmin -report
hdfs dfs -df -h
jps
iostat -x 1

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

  • Hadoop 版本(2.x / 3.x)
  • 集群规模(几台机器)
  • 主要场景(批处理 / 实时 / 小文件多)

我可以给你一套针对性 HDFS 调优参数模板

0