更新时间:2025-07-14 GMT+08:00
配置DataNode节点容量不一致时的副本放置策略
操作场景
默认情况下,NameNode会随机选择DataNode节点写入文件。当集群内某些数据节点的磁盘容量大小不一致,会导致磁盘总容量小的节点先写满。通过修改集群默认的DataNode写数据时的磁盘选择策略为“节点磁盘可用空间块放置策略”,可提高将块数据写到磁盘可用空间较大节点的概率,解决因为数据节点磁盘容量不一致导致的节点使用率不均衡的情况,显著提升HDFS的数据可靠性和读写性能。
NameNode默认的副本存储策略为:
- 第一副本:存放到客户端所在节点。
- 第二副本:远端机架的数据节点。
- 第三副本:存放到客户端所在节点的相同机架的不同节点。
如还有更多副本,则随机选择其它DataNode。
“节点磁盘可用空间块放置策略”的副本选择机制为:
- 第一个副本:存放在客户端所在DataNode(和默认的存放策略一样)。
- 第二个副本:
- 选择存储节点的时候,先挑选2个满足要求的数据节点。
- 比较这2个节点磁盘空间使用比例,如果磁盘空间使用率的相差小于5%,随机存放到第一个节点。
- 如果磁盘空间使用率相差超过5%,即有60%(由dfs.namenode.available-space-block-placement-policy.balanced-space-preference-fraction指定,默认值0.6)的概率写到磁盘空间使用率低的节点。
- 第三副本等其他后续副本的存储情况,也参考第二个副本的选择方式。
对系统的影响
调整HDFS数据的磁盘选择策略可能会对HDFS写文件性能产生影响。
前提条件
MRS集群内DataNode节点的磁盘总容量偏差不能超过100%。
操作步骤
- 登录FusionInsight Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 选择“集群 > 服务 > HDFS > 配置 > 全部配置”。
- 调整HDFS写数据时的依据的磁盘选择策略参数。
- 保存修改的配置。保存完成后请重新启动配置过期的服务或实例以使配置生效。
父主题: HDFS企业级能力增强