一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

HDFS优化面临新挑战,如何按照数据冷热程度进行分层存储

来源:http://www.elecfans.com/consume/574053.html 发布时间:2017-11-03

摘要: 人们常常使用HDFS作为存储服务的核心,大数据的实用性和发展对于企业来讲都是很重要的。而在大数据发展之初,最主要的应用场景仍然是离线批处理场景,对存储的需求追求的是吞吐量,HDFS正是针对这样的场景而设计的,而随着技术不断的发展,越来越多的场景会对存储提出新的需求,HDFS也面临着新的挑战。

        人们常常使用HDFS作为存储服务的核心,大数据的实用性和发展对于企业来讲都是很重要的。而在大数据发展之初,最主要的应用场景仍然是离线批处理场景,对存储的需求追求的是吞吐量,HDFS正是针对这样的场景而设计的,而随着技术不断的发展,越来越多的场景会对存储提出新的需求,HDFS也面临着新的挑战。主要包括几个方面:

  1、数据量问题

  一方面随着业务的增长和新的应用接入,会给HDFS带来更多的数据,另一方面随着深度学习,人工智能等技术的发展,用户通常希望能保存更长时间的数据,以提升深度学习的效果。数据量的快速增加会使集群不断面临扩容需求,从而导致存储成本不断增加。

  2、小文件问题

  众所周知,HDFS的设计是针对离线批处理大文件的,处理小文件并非传统HDFS擅长的场景。HDFS小文件问题的根源在于文件的元数据信息都是维护在单点Namenode的内存中,单台机器的内存空间始终是有限的。据估算,单台namenode集群能容纳系统文件数量极限大约在1.5亿左右。实际上,HDFS平台通常作为底层存储平台服务于上层多种计算框架,多个业务场景,所以小文件问题从业务的角度也难以避免。目前也有方案例如HDFS-FederaTIon解决Namenode单点扩展性问题,但同时也会带来巨大的运维管理难度。

  3、冷热数据问题

  随着数据量的不断增长积累,数据也会呈现出访问热度不同的巨大差异。例如一个平台会不断地写入最新的数据,但通常情况下最近写入的数据访问频率会比很久之前的数据高很多。如果无论数据冷热情况,都采用同样的存储策略,是对集群资源的一种浪费。如何根据数据冷热程度对HDFS存储系统进行优化是一个亟待解决的问题。

  从Hadoop诞生到今天也有超过10年的时间,在此期间HDFS技术本身也在不断优化演进。HDFS现有一些技术能够一定程度上解决上述一些问题。这里简要介绍一下HDFS异构存储和HDFS纠删码技术。

  HDFS异构存储:

  Hadoop从2.6.0版本开始支持异构存储功能。我们知道HDFS默认的存储策略,对于每个数据块,采用三个副本的存储方式,保存在不同节点的磁盘上。异构存储的作用在于利用服务器不同类型的存储介质(包括HDD硬盘、SSD、内存等)提供更多的存储策略(例如三个副本一个保存在SSD介质,剩下两个仍然保存在HDD硬盘),从而使得HDFS的存储能够更灵活高效地应对各种应用场景。

  HDFS中预定义支持的各种存储包括:

  ARCHIVE:高存储密度但耗电较少的存储介质,例如磁带,通常用来存储冷数据

  DISK:磁盘介质,这是HDFS最早支持的存储介质

  SSD:固态硬盘,是一种新型存储介质,目前被不少互联网公司使用

  RAM_DISK :数据被写入内存中,同时会往该存储介质中再(异步)写一份

  HDFS中支持的存储策略包括:

  Lazy_persist:一个副本保存在内存RAM_DISK中,其余副本保存在磁盘中

  ALL_SSD:所有副本都保存在SSD中

  One_SSD:一个副本保存在SSD中,其余副本保存在磁盘中

  Hot:所有副本保存在磁盘中,这也是默认的存储策略

  Warm:一个副本保存在磁盘上,其余副本保存在归档存储上

  Cold:所有副本都保存在归档存储上

  总体上HDFS异构存储的价值在于,根据数据热度采用不同策略从而提升集群整体资源使用效率。对于频繁访问的数据,将其全部或部分保存在更高访问性能的存储介质(内存或SSD)上,提升其读写性能;对于几乎不会访问的数据,保存在归档存储介质上,降低其存储成本。但是HDFS异构存储的配置需要用户对目录指定相应的策略,即用户需要预先知道每个目录下的文件的访问热度,在实际大数据平台的应用中,这是比较困难的一点。

  HDFS纠删码:

  传统HDFS数据采用三副本机制保证数据的可靠性,即每存储1TB数据,实际在集群各节点上占用的数据达到3TB,额外开销为200%。这给节点磁盘存储和网络传输带来了很大的压力。

  在Hadoop3.0开始引入支持HDFS文件块级别的纠删码,底层采用Reed-Solomon(k,m)算法。RS是一种常用的纠删码算法,通过矩阵运算,可以为k位数据生成m位校验位,根据k和m的取值不同,可以实现不同程度的容错能力,是一种比较灵活的纠删码算法。

  常见的算法为RS(3,2)、RS(6,3)、RS(10,4),k个文件块和m个校验块构成一个组,这个组内可以容忍任意m个数据块的丢失。

  HDFS纠删码技术能够降低数据存储的冗余度,以RS(3,2)为例,其数据冗余度为67%,相比Hadoop默认的200%大为减少。但是纠删码技术存储数据和数据恢复都需要消耗cpu进行计算,实际上是一种以时间换空间的选择,因此比较适用的场景是对冷数据的存储。冷数据存储的数据往往一次写入之后长时间没有访问,这种情况下可以通过纠删码技术减少副本数。

  前面介绍的无论HDFS异构存储还是纠删码技术,前提都是需要用户对特定的数据指定存储的行为,就是说用户需要知道哪些数据是热点数据,哪些是冷数据。那有没有一种方法可以自动对存储进行优化呢?

  答案是有的,这里介绍的SSM(Smart Storage Management)系统,它从底层存储(通常是HDFS)中获取元数据信息,并通过数据读写访问信息分析获取数据热度情况,针对不同热度的数据,按照预先制定的一系列规则,采用相应的存储优化策略,从而提升整个存储系统的效率。SSM是一个由Intel主导的开源的项目,中国移动也参与其中的研发,项目可以在Github中获取到:https://github。com/Intel-bigdata/SSM 。

  SSM定位是一个存储外围优化的系统,整体上采用Server-Agent-Client的架构,其中Server负责SSM整体逻辑的实现,Agent用于对存储集群执行各种操作,Client是提供给用户的数据访问接口,通常其中包含了原生HDFS的接口。

 了解更多相关设计技术信息,请点击华强旗舰电子圈(http://www.hqbuy.com/dzq/dzqsy.html)!

声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: