HDFS的异构存储测试
2018-03-08 09:20
776 查看
存储类型
根据存储的介质不同,存储类型按照存储的速度快慢排序依次为:RAM_DISK,SSD,DISK, ARCHIVE.- memory存储,数据放在内存中,读写速度快,数据可暂时存储
- SSD:又称固态硬盘,读写速度仅次于memory,数据可以永久存放
- DISK:普通机械硬盘。在hdfs中如果没有特意指定,数据默认都存在DISK中。
- ARCHIV:具有较高的存储密度,读写速度差,用于归档存储。
存储策略
在hdfs中存储策略分为以下几种:- HOT:用于存储热数据,默认情况,hdfs的数据都采用的是HOT策略,所有的副本都存储在DISK中。
- COLD:用于存储冷数据,所有的数据副本存储在ARCHIV中。
- Warm:有些数据存在DISK中,有些做归档处理 。
- All_SSD:所有的数据副本都存储在SSD中。
- One_SSD:将数据的一个副本存储在SSD中,其余的副本存储在磁盘中。
- Lazy_Persist:用于在内存中写入单个副本的块。该副本首先在RAM_DISK中写入,后续持久化到DISK中。
通常一个存储策略有以下几个部分组成:Policy ID,Policy name,Block存储类型列表,文件创建时的备用存储类型列表,用于副本的备用存储类型列表。如下表所示:
配置异构存储
1.在hdfs-site.xml 文件中配置dfs.storage.policy.enabled属性,值为true(默认)2.dfs.datanode.data.dir值的配置:在每个datanode上,应该将逗号分隔的存储位置标记为它们的存储类型。这允许存储策略根据策略将块放在不同的存储类型上。例如:
DataNode数据存储位置为:/data/hadoop/ssd 应该配置为[SSD]/data/hadoop/disk
3.当对数据的存储策略做出改变是,需要使用mover命令对相关文件目录进行扫描,进行数据块的迁移。
hdfs mover [-p <files/dirs> | -f <local file name>]
-p: 指定要迁移的HDFS文件列表。
-f:指定被迁移的HDFS文件对应的本地文件系统路径
注:当忽略-p和-f选项时,默认路径是根目录。
4.相关的命令:
列出目前现有的存储策略
hdfs storagepolicies -listPolicies
对目标文件/目录设置存储策略
hdfs storagepolicies -setStoragePolicy -path <path> -policy <policy>
获取指定路径的存储策略
hdfs -getStoragePolicy -path <path>
异构存储实战
1.环境准备三台服务器:crh-1,crh-2,crh-3
磁盘挂载情况相同,都有一个ssd盘,三个机械硬盘,如下所示
crh-1
crh-2
crh-3
2.hadoop版本2.7.5,集群节点分布如下:
3.在用ambari安装hadoop时填写dfs.datanode.data.dir时,根据自己的实际情况填写,如下:
/data/hdd1/hadoop/hdfs/data,/data/hdd2/hadoop/hdfs/data,/data/hdd3/hadoop/hdfs/data,[SSD]/data/ssd/hadoop/hdfs/data
4.命令实战
切换到hdfs用户,查看当前有哪些存储策略可以用
hdfs storagepolicies –listPolicies
[hdfs@crh-3 ~]$ hdfs storagepolicies -listPolicies Block Storage Policies: BlockStoragePolicy{COLD:2, storageTypes=[ARCHIVE], creationFallbacks=[], replicationFallbacks=[]} BlockStoragePolicy{WARM:5, storageTypes=[DISK, ARCHIVE], creationFallbacks=[DISK, ARCHIVE], replicationFallbacks=[DISK, ARCHIVE]} BlockStoragePolicy{HOT:7, storageTypes=[DISK], creationFallbacks=[], replicationFallbacks=[ARCHIVE]} BlockStoragePolicy{ONE_SSD:10, storageTypes=[SSD, DISK], creationFallbacks=[SSD, DISK], replicationFallbacks=[SSD, DISK]} BlockStoragePolicy{ALL_SSD:12, storageTypes=[SSD], creationFallbacks=[DISK], replicationFallbacks=[DISK]} BlockStoragePolicy{LAZY_PERSIST:15, storageTypes=[RAM_DISK, DISK], creationFallbacks=[DISK], replicationFallbacks=[DISK]}
2.获取指定路径的存储策略
hdfs storagepolicies -getStoragePolicy -path /user
[hdfs@crh-3 ~]$ hdfs dfs -ls / Found 8 items drwxrwxrwx - yarn hadoop 0 2018-03-06 14:52 /app-logs drwxr-xr-x - yarn hadoop 0 2018-03-06 14:37 /ats drwxr-xr-x - hdfs hdfs 0 2018-03-06 15:39 /benchmarks drwxr-xr-x - hdfs hdfs 0 2018-03-06 14:37 /crh drwxr-xr-x - mapred hdfs 0 2018-03-06 14:37 /mapred drwxrwxrwx - mapred hadoop 0 2018-03-06 14:37 /mr-history drwxrwxrwx - hdfs hdfs 0 2018-03-06 14:38 /tmp drwxr-xr-x - hdfs hdfs 0 2018-03-06 14:52 /user [hdfs@crh-3 ~]$ hdfs storagepolicies -getStoragePolicy -path /user The storage policy of /user is unspecified
创建一个新的目录和文件,指定其存储策略
[hdfs@crh-3 ~]$ hdfs dfs -mkdir -p /test/data/ [hdfs@crh-3 ~]$ hdfs dfs -put /opt/test.txt /test/data/ [hdfs@crh-3 ~]$ hdfs dfs -ls /test/data/ Found 1 items -rw-r--r-- 3 hdfs hdfs 179714984449 2018-03-07 09:34 /test/data/test.txt [hdfs@crh-3 ~]$ hdfs storagepolicies -setStoragePolicy -path /test/data/test.txt -policy ALL_SSD Set storage policy ALL_SSD on /test/data/test.txt
执行hdfs mover 命令,进行数据块的迁移
hdfs mover -p /test/data/test.txt [hdfs@crh-3 ~]$ hdfs mover -p /test/data/test.txt 18/03/07 09:49:54 INFO mover.Mover: namenodes = {hdfs://crh-1:8020=[/test/data/test.txt]} 18/03/07 09:49:55 INFO balancer.KeyManager: Block token params received from NN: update interval=10hrs, 0sec, token lifetime=10hrs, 0sec 18/03/07 09:49:55 INFO block.BlockTokenSecretManager: Setting block keys 18/03/07 09:49:55 INFO balancer.KeyManager: Update block keys every 2hrs, 30mins, 0sec 18/03/07 09:49:56 INFO block.BlockTokenSecretManager: Setting block keys 18/03/07 09:49:56 INFO net.NetworkTopology: Adding a new node: /default-rack/192.168.0.83:50010 18/03/07 09:49:56 INFO net.NetworkTopology: Adding a new node: .............
使用df -h 命令查看datanode的服务器上的ssd盘已经有数据了
crh-3
crh-2
参考文档
http://hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-hdfs/ArchivalStorage.html
更多精彩原创文章,详见红象云腾社区
相关文章推荐
- HDFS & MapReduce异构存储性能测试白皮书
- 总结自己的基于gpu的异构程序开发流程
- Hadoop HDFS高可用(HA)
- xtts 跨异构数据平台传输表空间
- html调用hadoop WebHDFS REST API
- HDFS 文件系统
- HDFS分布式文件系统特征block底层
- HDFS读和写
- 向HDFS上传文件时报错16/07/23 01:13:30 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.Rem
- 分布式文件系统HDFS
- HDFS:不同版本评比分析
- Hadoop学习(2):HDFS基础
- [HDFS Manual] CH1 HDFS体系结构
- hadoop2.X之HDFS集群管理:ReplicationMonitor
- HDFS的滚动升级: Rolling Upgrade
- HDFS配额管理
- 巧用备份数节省hdfs空间
- 一篇很好的Hadoop入门文章:Hadoop是什么、核心HDFS与MapReduce的原理
- 在CM中修改HDFS的nameservice
- 从HDFS看分布式文件系统的设计需求