在设计海量数据的存储架构时,我们往往会面临成本和速率方面的抉择:普通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的异构存储策略相关推荐

  1. 华为云FusionInsight MRS HDFS组件数据存储策略配置指导

    操作场景 默认情况下,HDFS NameNode自动选择DataNode保存数据的副本.在实际业务中,可能存在以下场景: DataNode上可能存在不同的存储设备,数据需要选择一个合适的存储设备分级存 ...

  2. 我与HDFS那些事儿(一)HDFS的数据存储

    我与HDFS那些事儿(一)HDFS的数据存储 闲话不多说,就来聊聊这些年与HDFS的那些事儿,我们首先来聊聊HDFS的数据存储.HDFS正是先有了数据的存储,才有后续的写入和管理等操作.数据存储包括两 ...

  3. 面试中听到这句话是不是代表凉了?

    相信面试中的小伙伴都听到过这样一句话,你回去等通知吧,很多小伙伴一听到这样的回复,就开始了煎熬的等待,我一定能等到通知嘛?我要等多少天才会等到通知?这是不是暗示我已经被淘汰了?等通知就一定能等来结果嘛 ...

  4. 884.两句话中的不常见单词

    题目 884.两句话中的不常见单词 题目大意 句子 是一串由空格分隔的单词.每个 单词 仅由小写字母组成. 如果某个单词在其中一个句子中恰好出现一次,在另一个句子中却 没有出现 ,那么这个单词就是 不 ...

  5. 面试说了这几句话,offer铁定无望!

     虽然在面试中有些话你说的是事实,但是由于缺乏语言环境,面试官很难知道前因后果,因而他的理解可能并非你的本意,却也影响着他对你的评判.在前程无忧论坛(http://bbs.51job.com)上, ...

  6. Hadoop3 - HDFS 文件存储策略

    一.HDFS 文件存储策略 Hadoop 允许将不是热数据或者活跃数据的数据分配到比较便宜的存储上,用于归档或冷存储.可以设置存储策略,将较旧的数据从昂贵的高性能存储上转移到性价比较低(较便宜)的存储 ...

  7. 8、HDFS内存存储策略支持和“冷热温”存储

    Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...

  8. 极简面试自我介绍5句话公式,妹子一口气拿下阿里,美团,华为,网易等名企offer!

    面试自我介绍虽然人人都准备,但是做到让人印象深刻可不容易啊.本篇就具体来聊聊人人都要经历的面试,怎么做好自我介绍,才能让你在面试官的眼睛里----像金子一样闪闪发光? 自我介绍的重要性 自我介绍就是面 ...

  9. 5句话让你了解苹果Handoff功能

    原文网址:http://iphone.tgbus.com/news/class/201412/20141202154807.shtml 苹果iOS 8系统为我们带来了一个新功能--Handoff,该功 ...

最新文章

  1. 【嵌入式】从STM32F103ZET6移植到STM32F103RCT6的流程
  2. C#中实现对Excel特定文本的搜索
  3. offsetLeft和style.left的区别
  4. SQL语句对象化,先看示例代码.
  5. 二叉链表的建立和遍历 完整的前,中,后和层序建立和遍历
  6. DoubleArrayTrie详解
  7. 【BZOJ 1257】余数之和【整除优化】
  8. 腾讯信鸽推送基本流程和数据的处理流程
  9. 电脑知识:DOS命令使用
  10. 马杰花总刘韧对话:机器人服务是元宇宙虚拟与现实的链接
  11. 数据的逻辑结构包括那些?
  12. 电脑局域网所有IP及对应MAC地址查询
  13. 参数校验@Valid
  14. 下载编译curaEngine
  15. 概率栅格地图中Uint8_t向int8_t转换
  16. 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,棋盘上放的所有芝麻的重量。
  17. B 站上有哪些很好的学习资源?
  18. 在EXCEL使用VLOOKUP函数实现自动匹配
  19. 最简单的存储过程写法及调用
  20. 高通AKM8975地磁传感器分析

热门文章

  1. [Ubuntu] 虚拟机忘记登录密码的解决方案
  2. 批处理bat万能删除文件/夹
  3. 如何使用Microsoft Word 2013的内置截图工具
  4. 左神算法(一)下修改版
  5. VUE CLI 4.x 打包成APP后白屏解决办法打包APP教程
  6. 到 2023 年全球勒索软件损失将超过 300 亿美元
  7. java汽车油耗计算_Java程序设计单元4任务1油耗计算程序设计.ppt
  8. 从struts2回到struts的学习--DynaActionForm(不用手写actionForm.java)
  9. 《歌声传奇》引关注 成后“限娱令”时代新选择_0
  10. Android11 九宫格解锁流程