温馨提示×

centos hdfs带宽怎么限制

小樊
34
2026-10-15 04:31:27
栏目: 智能运维

在 CentOS 上限制 HDFS 带宽,通常不是 HDFS 自身直接限速,而是从 系统层 / 网络层 / YARN 层 来做。下面按常用且可行的方式说明。


一、HDFS 自身参数(最推荐,官方支持)

HDFS 提供了 数据平衡(Balancer)和 DataNode 传输限速 参数。

1️⃣ 限制 DataNode 数据传输带宽(最常用)

dfs.datanode.balance.bandwidthPerSec

<property>
  <name>dfs.datanode.balance.bandwidthPerSec</name>
  <value>10485760</value> <!-- 10 MB/s -->
</property>
  • 单位:字节/秒
  • 影响:
    • Balancer
    • 副本复制
    • 节点间数据迁移
  • 修改后 重启 DataNode 生效

✅ 适合:集群内部流量控制


2️⃣ 限制 Balancer 速度(临时)

hdfs balancer -bandwidth 10485760

只对当前 Balancer 进程生效。


二、YARN / MapReduce 限速(读写 HDFS 时)

如果是 计算任务读写 HDFS 太占带宽:

<property>
  <name>mapreduce.map.output.buffer.bytes</name>
  <value>10485760</value>
</property>

或限制 shuffle 带宽(间接)。


三、Linux 层限速(CentOS 通用)

如果 HDFS 和别的业务共用网卡:

使用 tc(流量控制)

# 限制 eth0 为 100Mbps
tc qdisc add dev eth0 root tbf rate 100mbit burst 32kbit latency 400ms

查看:

tc qdisc show dev eth0

删除:

tc qdisc del dev eth0 root

✅ 适合:

  • 限制整个节点
  • HDFS + 其他服务混部

四、防火墙 / 端口限速(不推荐但可行)

通过 iptables 限制 HDFS 端口(50010 / 50070 等):

iptables -A OUTPUT -p tcp --dport 50010 -m limit --limit 10/s

⚠️ 复杂度高,生产不推荐


五、总结建议

场景 推荐方式
副本 / Balancer 太占带宽 dfs.datanode.balance.bandwidthPerSec
集群整体出网限速 Linux tc
任务读写太猛 YARN 参数
临时限速 hdfs balancer -bandwidth

如果你能说明:

  • 是 DataNode 之间 还是 客户端读写
  • 带宽目标(如 100Mbps / 1Gbps)
  • CentOS 版本 & Hadoop 版本

我可以给你 直接可执行的配置。

0 踩