几句话聊聊HDFS的异构存储策略
在设计海量数据的存储架构时,我们往往会面临成本和速率方面的抉择:普通HDD容量大且廉价,但读写速率较慢;SSD的读写比HDD要快数倍到十数倍,但是成本高,单位成本的容量小。所以,当数据量大到一定程度之后,几乎都要考虑冷热数据分离的存储架构,正式的称呼为异构存储(heterogeneous storage)。本文简要介绍HDFS的异构存储策略。
从Hadoop 2.6.0(HDFS-2832)开始,HDFS正式开始支持异构存储,即DataNode的存储不再是统一的,而是多种不同存储介质的集合。Hortonworks的PPT里有一页图示如下。
HDFS支持的存储介质(storage type)有以下4种:
- RAM_DISK(内存);
- SSD(固态硬盘);
- DISK(机械硬盘/HDD);
- ARCHIVE(归档存储,可以理解为比HDD还慢,但不易失的超大容量介质)。
显然,它们的读写速率是由快到慢的,所以前两者适合热数据的存储,后两者适合冷数据的存储。当然,DataNode不会自动探知各个存储路径属于哪种介质,所以在配置dfs.datanode.data.dir
参数时,需要手动加上前缀,如:/data1/dfs/dn,[SSD]/data2/dfs/dn
。如果不加前缀,默认为DISK。
只设定了存储介质还不够,HDFS又定义了6种存储策略(storage policy),以适应多副本存储的特性,通过设定dfs.storage.policy.enabled
参数来启用(默认就是启用的),列举如下:
- Lazy_Persist:1个副本存储在内存,其余n-1个副本存储在HDD;
- All_SSD:所有副本存储在SSD;
- One_SSD:1个副本存储在SSD,其余n-1个副本存储在HDD;
- Hot(默认值):全部副本存储在HDD;
- Warm:1个副本存储在HDD,其余n-1个副本归档存储;
- Cold:全部副本归档存储。
可见,HDFS的异构存储策略比单纯的冷热区分得更加细致。通过以下命令可以查看支持的存储策略列表。
~ hdfs storagepolicies -listPoliciesBlock 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]}
其中,creationFallbacks和replicationFallbacks分别指存储策略对应的介质空间不足时,会fallback到哪种介质做写入和复制。
通过以下命令可以为一个HDFS上的目录设置或者取消存储策略。
# 例:为HBase的WAL设置纯SSD的存储策略
hdfs storagepolicies -setStoragePolicy -path /hbase/wal -policy All_SSD
# 取消存储策略
hdfs storagepolicies -unsetStoragePolicy -path /hbase/wal
注意,设置存储策略会影响所有子目录,而取消存储策略会将当前目录的存储策略重置为与其父目录相同。当然,也可以获取到某目录当前的存储策略。
hdfs storagepolicies -getStoragePolicy -path /hbase/wal
设置好之后,当客户端向NameNode发送写请求时,NameNode就会根据配置好的存储介质和存储策略选择相应的DataNode进行写入。DataNode通过在心跳包中携带存储介质和存储策略的数据来保持NameNode的感知。
最后,如果我们修改了HDFS目录的存储策略,还可以通过hdfs mover
命令来转移不符合存储策略的数据,不再赘述。
我们当前在深入研究的ClickHouse同样支持异构存储,完全根据配置文件来设置,更加灵活。官方文档写得已经足够详细,看官可参考。
明天继续搬砖,晚安吧各位。
几句话聊聊HDFS的异构存储策略相关推荐
- 华为云FusionInsight MRS HDFS组件数据存储策略配置指导
操作场景 默认情况下,HDFS NameNode自动选择DataNode保存数据的副本.在实际业务中,可能存在以下场景: DataNode上可能存在不同的存储设备,数据需要选择一个合适的存储设备分级存 ...
- 我与HDFS那些事儿(一)HDFS的数据存储
我与HDFS那些事儿(一)HDFS的数据存储 闲话不多说,就来聊聊这些年与HDFS的那些事儿,我们首先来聊聊HDFS的数据存储.HDFS正是先有了数据的存储,才有后续的写入和管理等操作.数据存储包括两 ...
- 面试中听到这句话是不是代表凉了?
相信面试中的小伙伴都听到过这样一句话,你回去等通知吧,很多小伙伴一听到这样的回复,就开始了煎熬的等待,我一定能等到通知嘛?我要等多少天才会等到通知?这是不是暗示我已经被淘汰了?等通知就一定能等来结果嘛 ...
- 884.两句话中的不常见单词
题目 884.两句话中的不常见单词 题目大意 句子 是一串由空格分隔的单词.每个 单词 仅由小写字母组成. 如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不 ...
- 面试说了这几句话,offer铁定无望!
虽然在面试中有些话你说的是事实,但是由于缺乏语言环境,面试官很难知道前因后果,因而他的理解可能并非你的本意,却也影响着他对你的评判.在前程无忧论坛(http://bbs.51job.com)上, ...
- Hadoop3 - HDFS 文件存储策略
一.HDFS 文件存储策略 Hadoop 允许将不是热数据或者活跃数据的数据分配到比较便宜的存储上,用于归档或冷存储.可以设置存储策略,将较旧的数据从昂贵的高性能存储上转移到性价比较低(较便宜)的存储 ...
- 8、HDFS内存存储策略支持和“冷热温”存储
Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...
- 极简面试自我介绍5句话公式,妹子一口气拿下阿里,美团,华为,网易等名企offer!
面试自我介绍虽然人人都准备,但是做到让人印象深刻可不容易啊.本篇就具体来聊聊人人都要经历的面试,怎么做好自我介绍,才能让你在面试官的眼睛里----像金子一样闪闪发光? 自我介绍的重要性 自我介绍就是面 ...
- 5句话让你了解苹果Handoff功能
原文网址:http://iphone.tgbus.com/news/class/201412/20141202154807.shtml 苹果iOS 8系统为我们带来了一个新功能--Handoff,该功 ...
最新文章
- 【嵌入式】从STM32F103ZET6移植到STM32F103RCT6的流程
- C#中实现对Excel特定文本的搜索
- offsetLeft和style.left的区别
- SQL语句对象化,先看示例代码.
- 二叉链表的建立和遍历 完整的前,中,后和层序建立和遍历
- DoubleArrayTrie详解
- 【BZOJ 1257】余数之和【整除优化】
- 腾讯信鸽推送基本流程和数据的处理流程
- 电脑知识:DOS命令使用
- 马杰花总刘韧对话:机器人服务是元宇宙虚拟与现实的链接
- 数据的逻辑结构包括那些?
- 电脑局域网所有IP及对应MAC地址查询
- 参数校验@Valid
- 下载编译curaEngine
- 概率栅格地图中Uint8_t向int8_t转换
- 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
- B 站上有哪些很好的学习资源?
- 在EXCEL使用VLOOKUP函数实现自动匹配
- 最简单的存储过程写法及调用
- 高通AKM8975地磁传感器分析
热门文章
- [Ubuntu] 虚拟机忘记登录密码的解决方案
- 批处理bat万能删除文件/夹
- 如何使用Microsoft Word 2013的内置截图工具
- 左神算法(一)下修改版
- VUE CLI 4.x 打包成APP后白屏解决办法打包APP教程
- 到 2023 年全球勒索软件损失将超过 300 亿美元
- java汽车油耗计算_Java程序设计单元4任务1油耗计算程序设计.ppt
- 从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
- 《歌声传奇》引关注 成后“限娱令”时代新选择_0
- Android11 九宫格解锁流程