阅读量:1
一、HDFS存储策略基础概念
HDFS通过存储类型(Storage Type)和存储策略(Storage Policy)实现数据的分层存储,平衡性能与成本。
- 存储类型:定义数据块的物理存储介质,包括
DISK(机械硬盘,默认)、SSD(固态硬盘)、RAM_DISK(内存盘)、ARCHIVE(高密度归档存储,如HDD大容量设备)。 - 存储策略:定义数据块的存储规则,HDFS预置6种策略:
HOT(默认):所有副本存储在DISK,适用于频繁访问的热数据;COLD:所有副本存储在ARCHIVE,适用于极少访问的冷数据;WARM:部分副本存储在DISK、部分在ARCHIVE,适用于访问频率下降的温数据;ALL_SSD:所有副本存储在SSD,适用于高性能需求的场景;ONE_SSD:1个副本存储在SSD、其余在DISK,兼顾性能与成本;LAZY_PERSIST:1个副本写入RAM_DISK(内存),异步持久化到DISK,适用于低延迟写入场景。
二、CentOS上配置HDFS存储策略步骤
1. 准备存储介质
在CentOS服务器上划分不同存储介质的目录(示例):
# 创建物理目录
mkdir -p /data/disk1 /data/ssd1 /data/archive1 /mnt/ramdisk
# 挂载SSD(假设/dev/sdb为SSD设备)
mkfs.ext4 /dev/sdb
echo "/dev/sdb /data/ssd1 ext4 defaults 0 0" >> /etc/fstab
mount -a
# 挂载RAM_DISK(内存盘,大小1GB)
mount -t tmpfs -o size=1g tmpfs /mnt/ramdisk
2. 配置DataNode存储路径
编辑Hadoop配置文件/etc/hadoop/conf/hdfs-site.xml,为每个DataNode的dfs.datanode.data.dir指定存储类型(格式:[STORAGE_TYPE]PATH):
<property>
<name>dfs.datanode.data.dirname>
<value>["DISK"]/data/disk1,"SSD"]/data/ssd1,"ARCHIVE"]/data/archive1,"RAM_DISK"]/mnt/ramdiskvalue>
property>
注:
DISK无需显式声明,未标注类型的路径默认为DISK。
3. 启用存储策略功能
在hdfs-site.xml中添加以下配置,启用存储策略:
<property>
<name>dfs.storage.policy.enabledname>
<value>truevalue>
property>
4. 配置存储策略参数(可选)
根据需求调整存储策略的默认行为,例如:
<property>
<name>dfs.storage.policy.defaultname>
<value>HOTvalue>
property>
<property>
<name>dfs.storage.policy.COLD.replication.factorname>
<value>2value>
property>
5. 重启HDFS服务
使配置生效:
# 停止HDFS
stop-dfs.sh
# 启动HDFS
start-dfs.sh
6. 管理存储策略
-
列出所有存储策略:
hdfs storagepolicies -listPolicies输出示例:
Block Storage Policies: BlockStoragePolicy{HOT:7, storageTypes=[DISK], ...} BlockStoragePolicy{COLD:2, storageTypes=[ARCHIVE], ...} BlockStoragePolicy{WARM:5, storageTypes=[DISK,ARCHIVE], ...} BlockStoragePolicy{ALL_SSD:12, storageTypes=[SSD], ...} BlockStoragePolicy{ONE_SSD:10, storageTypes=[SSD,DISK], ...} BlockStoragePolicy{LAZY_PERSIST:11, storageTypes=[RAM_DISK,DISK], ...} -
为目录/文件设置存储策略:
# 将/test目录设置为COLD策略(适用于冷数据) hdfs storagepolicies -setStoragePolicy -path /test -policy COLD # 将/user/data目录设置为ALL_SSD策略(适用于高性能数据) hdfs storagepolicies -setStoragePolicy -path /user/data -policy ALL_SSD -
查看某路径的存储策略:
hdfs storagepolicies -getStoragePolicy -path /test输出示例:
The storage policy of /test is COLD -
取消存储策略:
hdfs storagepolicies -unsetStoragePolicy -path /test取消后,该路径将继承其上级目录的策略,若无上级目录则使用默认策略(
HOT)。
三、注意事项
- 权限要求:执行存储策略命令需具备HDFS管理员权限(如
hdfs用户)。 - 数据迁移:设置存储策略后,HDFS会自动将数据块迁移至对应存储介质,迁移过程可能需要一定时间(取决于数据量)。
- 资源预留:
RAM_DISK需预留足够内存,避免影响系统稳定性;ARCHIVE存储需确保容量充足。 - 策略选择:根据数据访问频率合理选择策略,例如:
- 实时日志数据:
HOT; - 近期备份数据:
WARM; - 历史归档数据:
COLD; - 高频访问的关键业务数据:
ALL_SSD。
- 实时日志数据:
以上就是关于“HDFS在CentOS上的存储策略如何设置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm