更新时间:2025-06-20 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。
父主题: HDFS常见问题