文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用HDFS/ HDFS常见问题/ 当分级存储策略为LAZY_PERSIST时为什么文件的副本的存储类型为DISK
更新时间:2025-08-01 GMT+08:00

当分级存储策略为LAZY_PERSIST时为什么文件的副本的存储类型为DISK

问题

当文件的存储策略为LAZY_PERSIST时,文件的第一副本的存储类型应为RAM_DISK,其余副本为DISK。

为什么文件的所有副本的存储类型都是DISK?

回答

当用户写入存储策略为LAZY_PERSIST的文件时,文件的三个副本会逐一写入。第一副本会优先选择客户端所在的DataNode节点,在以下情况下,当文件的存储策略为LAZY_PERSIST时,文件的所有副本的存储类型都是DISK:

  • 当客户端所在的DataNode节点没有RAM_DISK时,则会写入客户端所在的DataNode节点的DISK磁盘,其余副本会写入其他节点的DISK磁盘。
  • 当客户端所在的DataNode节点有RAM_DISK,但“dfs.datanode.max.locked.memory”参数值未设置或值小于“dfs.blocksize”参数值时,则会写入客户端所在的DataNode节点的DISK磁盘,其余副本会写入其他节点的DISK磁盘。

    以上参数可以登录Manager,选择“集群 > 服务 > HDFS > 配置 > 全部配置”搜索对应参数获取。参数解释如下:

    • dfs.datanode.max.locked.memory:DataNode上用于缓存块副本的内存大小,该配置项的值需小于等于DataNode节点的最大可锁定内存。单位:字节。默认值为0。取值范围:0~1800000000000。
    • dfs.blocksize:新文件的默认块大小。单位:字节。需提供完整的字节数(如果128MB则需设置为134217728)。配置的块大小必须是512字节的倍数。默认值为134217728。取值范围:512~1073741824。