一、是什么
随着数据的日益增长,很多数据由热变冷,已经不再或者很少使用,而数据的存储需求越来越大,计算需求则相应增长不大。如何解耦这种急剧增长的存储需求和计算需求?HDFS Archival Storage正好能派上用场。
HDFS Archival Storage是Hadoop-2.6.0新增的一个特性,是Hadoop异构存储中的一部分。它实现了数据按照策略分开存储,解耦存储与计算能力,将部分冷数据归档至拥有廉价高密度存储介质但计算能力不强的机器。
Hadoop-2.6.0起增加了几种存储策略,可以规划某些机器为归档服务器,存储冷数据,存储介质为高密度廉价磁盘,某些机器为热数据服务器,存储热数据,存储介质可以为磁盘,也可以是SSD。存储策略包括如下几种:
目前,Hadoop-2.6.0支持的为HOT、WARM、COLD三种,热数据全部存储在标记为[DISK]的DataNode存储路径上(未标记的默认为[DISK]),而冷数据全部存储在标记为[ARCHIVE]的DataNode存储路径上,这种节点机器可以是计算能力比较弱但是存储密度高的廉价机器,温数据则介于两者之间,部分副本存储于[DISK]上,而部分副本存储于[ARCHIVE]上。而SSD则是在Hadoop-2.7.0开始支持的一种存储介质。
重启DataNode之后,我们可以标记部分HDFS数据存储路径的存储策略,然后利用hdfs mover工具进行数据的迁移。注意,未标记存储属性的DataNode默认为[DISK],未标记存储策略的HDFS路径默认为unspecified,新建文件时存储在[DISK]上。
二、怎么做
1、标记DataNode存储属性
修改hdfs-site.xml配置文件中的dfs.datanode.data.dir,在原路径前增加存储属性,如下: