在eBay,我们运转着多个由几千个节点构成的Hadoop集群,提供给成千上万的人使用。在这些Hadoop集群中我们存储了几千PB的数据。我们在本文探讨了如何基于数据使用频率来优化大数据存储。实验表明该方法有效降低了经济成本。

在eBay,咱们运转着多个由几千个节点构成的Hadoop集群,供给给不计其数的人运用。在这些Hadoop集群中咱们存储了几千PB的数据。咱们在本文讨论了怎么依据数据运用频率来优化大数据存储。试验标明该办法有用降低了经济本钱。

Hadoop 及其许诺

众所周知,商用硬件能够拼装起来创立具有大数据存储和核算才能的Hadoop集群。将数据拆分红多个部分,别离存储在每个独自的机器上,数据处理逻辑也在相同的机器上实行。

怎么运用分层存储让 HDFS 变得更高效?(hdfs按块存储的好处)  分层存储 高效 第1张

例如:一个1000个节点组成的Hadoop集群,单节点容量有20TB,最多能够存储20PB的数据。因而,一切的这些机器具有满足的核算才能来实行Hadoop的标语:“take compute to data”。

数据的温度

集群中一般存储着各种不同类型的数据集,不同的团队经过该集群能够同享地处理他们不同类型的作业使命。经过数据管道,每个数据集每时每刻都会得到添加。

数 据集有一个一起特色便是初始的运用量会很大。在此期间,数据集被认为是“热(HOT)”的。咱们经过剖析发现,跟着时刻的推移,运用率会有必定程度的下 降,存储的数据每周只是就被拜访几回,逐步就变为“温(WARM)”数据。在尔后90天中,当数据运用率跌至一个月几回时,它就被界说为“冷 (COLD)”数据。

因而数据在开端几天被认为是“热”的,尔后***个月仍然坚持为“温”的。在这期间,使命或运用会运用几回该数据。跟着 数据的运用率下降得更多,它就变“冷”了,在尔后90天内或许只被运用寥寥几回。终究,当数据一年只要一两次运用频率、很少用届时,它的“温度”便是“冰 冻”的了。

Data Age

Usage Frequency

Temperature

Age < 7 days

20 times a day

HOT

7 days > Age < 1 month

5 times a week

WARM

1 month < Age < 3 months

5 times a month

COLD

3 months < Age < 3 years

2 times a year

FROZEN

怎么运用分层存储让 HDFS 变得更高效?(hdfs按块存储的好处)  分层存储 高效 第2张

一般来讲,温度与每个数据集都严密相关。在这个比方中,温度是与数据的年纪成反比的。一个特定数据集的温度也受其他要素影响的。你也能够经过算法决议数据集的温度。

HDFS的分层存储

HDFS从Hadoop2.3开端支撑分层存储

它是怎么作业的呢?

正常状况下,一台机器添加到集群后,将会有指定的本地文件体系目录来存储这块副本。用来指定本地存储目录的参数是dfs.datanode.dir。另一层中,比方归档(ARCHIVE)层,能够运用名为StorageType的枚举来添加。为了标明这个本地目录归于归档层,该本地目录装备中会带有[ARCHIVE]的前缀。理论上,hadoop集群管理员能够界说多个层级。

比 如说:假如在一个已有1000个节点,其总存储容量为20PB的集群上,添加100个节点,其间每个节点有200TB的存储容量。比较已有的1000个节 点,这些新增节点的核算才能就相对较差。接下来,咱们在一切本地目录的装备中添加ARCHIVE的前缀。那么现在坐落归档层的这100个节点将会有 20PB的存储量。***整个集群被划分为两层——磁盘(DISK)层和归档(ARCHIVE)层,每一层有20PB的容量,总容量为40PB。

怎么运用分层存储让 HDFS 变得更高效?(hdfs按块存储的好处)  分层存储 高效 第3张

依据温度将数据映射到存储层

在这个比方中,咱们将在具有更强核算才能节点的DISK层存储高频率运用的“热(HOT)”数据。

至于“温(WARM)”数据,咱们将其大部分的副本存储在磁盘层。关于仿制因子(replication factor)为3的数据,咱们将在磁盘层存储其两个副本,在归档层存储一个副本。

假如数据现已变“冷(COLD)”,那么咱们至少将在磁盘层存储其每个块的一个副本。余下的副本都放入归档层。

怎么运用分层存储让 HDFS 变得更高效?(hdfs按块存储的好处)  分层存储 高效 第4张

当 一个数据集为认为是“冰冻(FROZEN)”的,这就意味着它简直现已不被运用,将其存储在具有很多CPU、能实行很多使命节点或容器的节点上是不明智 的。咱们会把它存储到一个具有最小核算才能的节点上。因而,一切处于“冰冻(FROZEN)”状况块的悉数副本都能够被移动到归档层。

跨层的数据流

当 数据***次添加到集群中,它将被存储到默许的磁盘层。依据数据的温度,它的一个或多个副本将被移动到归档层。移动器便是用来把数据从一个层移动到另一层 的。移动器的作业原理相似平衡器,除了它能够跨层地移动块的副本。移动器可接受一条HDFS途径,一个副本数目和意图地层信息。然后它将依据所述层的信息 辨认将要被移动的副本,并调度数据在源数据节点到意图数据节点的移动。

Hadoop 2.6中支撑分层存储的改动

Hadoop 2.6中有许多的改善使其能够进一步支撑分层存储。你能够附加一个存储战略到某个目录来指明它是“热(HOT)”的,“温(WARM)”的,“冷 (COLD)”的, 仍是“冰冻(FROZEN)”的。存储战略界说了每一层可存储的副本数量。我能够改动目录的存储战略并发动该目录的移动器来使得战略收效。

运用数据的运用

依据数据的温度,数据的部分或许悉数副本或许存储在任一层中。但关于经过HDFS来运用数据的运用而言,其方位是通明的。

虽 然“冰冻”数据的一切副本都在归档层,运用仍然能够像拜访HDFS的任何数据相同来拜访它。由于归档层中的节点并没有核算才能,运行在磁盘层的映射 (map)使命将从归档层的节点上读取数据,但这会导致添加运用的网络流量耗费。假如这种状况频频地产生,你能够指定该数据为“温/冷”,并让移动器移回 一个或多个副本到磁盘层。

确认数据温度以及完结指定的副本移动至预先界说的分层存储能够悉数自动化。

eBay的分层存储

eBay 在其间一个具有十分大规划的集群上运用了分层存储。该集群具有40PB的数据。咱们又额定添加了10PB核算才能受限的存储容量。每一个新的机器都能够存 储220TB。咱们把添加的存储标记为归档层,并把一些目录标识为“温”、“冷”或许“冰冻”。然后依据它们的温度,移动一切或部分的副本到归档层。

每GB归档层的价格要比磁盘层价格低四倍。这种差异主要是由于在归档层的机器具有十分有限的核算才能,故降低了本钱。

总结

无 核算才能的存储比有核算才能的存储要廉价。咱们能够依据数据的温度来保证具核算才能的存储能得到充分地运用。由于每一个分块的数据都会被仿制屡次(默许是 3次),依据数据的温度,许多副本都会被移动到低本钱的存储中。HDFS支撑分层存储并供给必要的东西来进行跨层的数据移动。eBay现已在其一个十分大 规划的集群上启用了分层存储,用来进行数据存档。

Benoy Antony 是Apache Hadoop委员会的一名成员,他重视于HDFS和Hadoop安全性的研讨。作为一名软件工程师,Benoy上任于eBay数据基础设施和服务部门。

转载请说明出处
知优网 » 怎么运用分层存储让 HDFS 变得更高效?(hdfs按块存储的好处)

发表评论

您需要后才能发表评论