CentOS 上调整 HDFS 配置的实操指南
一 操作前准备与影响控制
二 标准变更流程
<configuration>
<property><name>fs.defaultFS</name><value>hdfs://namenode:8020</value></property>
</configuration>
<configuration>
<property><name>dfs.replication</name><value>3</value></property>
<property><name>dfs.blocksize</name><value>134217728</value></property> <!-- 128MB -->
<property><name>dfs.namenode.handler.count</name><value>20</value></property>
<property><name>dfs.datanode.handler.count</name><value>30</value></property>
<property><name>dfs.datanode.max.transfer.threads</name><value>8192</value></property>
</configuration>
三 关键配置项与建议值
| 配置项 | 作用 | 建议与说明 |
|---|---|---|
| fs.defaultFS | 默认文件系统地址 | 如 hdfs://namenode:8020 或 9000,与部署一致 |
| dfs.replication | 副本数 | 生产常用 3;容量紧张可调低,可靠性优先可调高 |
| dfs.blocksize | 块大小 | 默认 128MB(134217728);大文件/吞吐优先可适当增大 |
| dfs.namenode.handler.count | NN RPC 处理线程 | 默认 10;可按集群规模调大,经验值约为 20·logN(N 为节点数) |
| dfs.datanode.handler.count | DN RPC 处理线程 | 默认 10;并发高时可适度增加 |
| dfs.datanode.max.transfer.threads | 数据传输并发线程 | 默认 4096;建议 8192 或更高(视负载与硬件) |
| dfs.namenode.name.dir | 元数据目录 | 建议多磁盘/多路径冗余,提升可靠性 |
| dfs.datanode.data.dir | 数据块目录 | 多盘用逗号分隔;每盘为 mapred 保留空间(见下) |
| dfs.datanode.du.reserved | 每盘保留空间 | 建议每盘预留 ≥10GB,避免磁盘被占满影响任务与汇报 |
| dfs.hosts / dfs.hosts.exclude | 白/黑名单 | 维护/更换磁盘时可先将节点加入 exclude 摘除再操作 |
| dfs.datanode.failed.volumes.tolerated | 容忍坏盘数 | 多盘节点可设为 1–2,降低因单盘故障导致节点下线的概率 |
| dfs.datanode.balance.bandwidthPerSec | 均衡带宽 | 默认 1MB/s;启动 balancer 时可用 -bandwidth 覆盖 |
| dfs.permissions.enabled | 权限开关 | 生产建议 true,按业务设置 superusergroup |
| dfs.client.read.shortcircuit | 短路本地读 | 需配置 dfs.domain.socket.path;能显著降低本地读延迟 |
| dfs.encrypt.data.transfer | 传输加密 | 非安全网络可开启,注意 CPU 开销 |
| dfs.support.append | 追加写 | 现代版本默认 true,有老集群升级需注意兼容性 |
| 以上参数及默认值/建议来自 Hadoop 官方配置说明与社区实践,适用于 CentOS 上的常见部署。 |
四 CentOS 系统层面的优化
* soft nofile 655360
* hard nofile 655360
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65535
echo never > /sys/kernel/mm/transparent_hugepage/enabled
这些优化能提升 HDFS 的并发连接与 I/O 能力,减少因资源限制导致的性能瓶颈。
五 验证与回滚