HDFS 架构

作者: 疯狂小兵 | 2016-12-01 | 阅读
「编辑」 「本文源码」

介绍

HDFS是设计用来运行在普通硬件上的分布式文件系统,与已经存在的分布式文件系统有很多相似之处。然而,与其他DFS最大的不同是其象征意义。 HDFS是高容错并设计用来部署在廉价硬件上。HDFS提供了高吞吐量的访问应用的数据的能力,并适用于海量数据集。HDFS没有严格遵循POSIX协议来支持流式访问文件系统数据。 HDFS最初设计作为WEB搜索引擎Nutch的基础组件。HDFS现在是Hadoop核心项目的一部分。

假想和目标

硬件故障

硬件故障比异常都正常,一个HDFS实例可以包含成百上千个服务器机器,每一个存储文件系统数据的一部分。 事实上这是很多组件,并且每个组件都有可能会出故障,那就意味着这些组件就不能提供HDFS服务了。因此检测失败,并且快速自动恢复就成了HDFS核心架构目标。

流式数据访问

运行在HDFS上的应用需要流式访问他们的数据集。他们不是典型的运行在通用文件系统上的通用应用程序。相对于用户的交互式处理,HDFS更加胜任批处理。 重点是高吞吐量低延时的数据访问。POSIX强加了很多硬件要求,这些要求在HDFS的应用上是不需要的。POSIX的语义在某些关键领域用于增加数据吞吐率。

大数据集

运行在HDFS上的应用拥有大量数据集。HDFS中典型的文件大小是从GB到TB。因此HDFS设计支持超大文件。 它提供高带宽聚合数据,并在单一集群扩展到上百个节点。 在单个实例中支持上千万个文件。

简单的相关模型

HDFS应用是对文件一次写入多次读取的访问模型。文件一旦被创建,除非追加和阶段,写和关闭是不需要改变的。将内容追加到文件最后是支持的,但不能在任意位置更新。 该采取简单的数据关联问题支持大吞吐量的数据访问。

MapReduce或Web爬虫完美适应该模型。

移动计算比移动数据成本更低

如果在数据附近进行操作,应用程序的计算需求会更有效,在数据量巨大时尤为明显。降低了网络拥挤并增加了系统的吞吐量。 该设想是将计算移近数据比数据移近计算更靠谱。 HDFS会为应用提供接口来将他们移向数据所在位置。


版权声明:本文由 在 2016年12月01日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《HDFS 架构》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP