1、 中文 6500 字 文献出处: Borthakur D. The hadoop distributed file system : Architecture and designJ. Hadoop Project Website, 2007, 11(11):1 - 10. 毕 业 设 计(论 文) 外文文献翻译 院 系: 经济与管理学院 物流与电子商务系 专 业: 电子 商务 班 级: 学生姓名: 导师姓名: 职称: 讲师 起止时间: 2014 年 12 月 20 日至 2015 年 6 月 20 日 1 Hadoop 分布式文件系统:架构和设计 D Borthakur 一、引言 Hadoo
2、p 分布式文件系统 (HDFS)被设计成适合运行在通用硬件 (commodity hardware)上的分布式文件系统。它和现有的分布式文件系 统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。 HDFS 是一个高度容错性的系统,适合部署在廉价的机器上。 HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。 HDFS 放宽了一部分 POSIX 约束,来实现流式读取文件系统数据的目的。 HDFS 在最开始是作为 Apache Nutch 搜索引擎项目的基础架构而开发的。 HDFS 是 Apache Hadoop Core 项目的一部分。这个项目的地址是http:/
3、hadoop.apache.org/core/。 二、前提和设计目标 2.1 硬件错 误 硬件错误是常态而不是异常。 HDFS 可能由成百上千的服务器所构成,每个服务器上存储着文件系统的部分数据。我们面对的现实是构成系统的组件数目是巨大的,而且任一组件都有可能失效,这意味着总是有一部分 HDFS 的组件是不工作的。因此错误检测和快速、自动的恢复是 HDFS 最核心的架构目标。 2.2 流式数据访问 运行在 HDFS 上的应用和普通的应用不同,需要流式访问它们的数据集。 HDFS的设计中更多的考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据访问的高吞吐量。 PO
4、SIX 标准设置的很 多硬性约束对 HDFS 应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对 POSIX的语义做了一些修改。 2.3 大规模数据集 运行在 HDFS 上的应用具有很大的数据集。 HDFS 上的一个典型文件大小一般都在 G 字节至 T 字节。因此, HDFS 被调节以支持大文件存储。它应该能提供整体上高的数据传输带宽,能在一个集群里扩展到数百个节点。一个单一的 HDFS实例应该能支撑数以千万计的文件。 2 2.4 简单的一致性模型 HDFS 应用需要一个“一次写入多次读取”的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这 一假设简化了数据一致性问题,并
5、且使高吞吐量的数据访问成为可能。 Map/Reduce 应用或者网络爬虫应用都非常适合这个模型。目前还有计划在将来扩充这个模型,使之支持文件的附加写操作。 2.5 “移动计算比移动数据更划算” 一个应用请求的计算,离它操作的数据越近就越高效,在数据达到海量级别的时候更是如此。因为这样就能降低网络阻塞的影响,提高系统数据的吞吐量。将计算移动到数据附近,比之将数据移动到应用所在显然更好。 HDFS 为应用提供了将它们自己移动到数据附近的接口。 2.6 异构软硬件平台间的可移植性 HDFS 在 设计的时候就考虑到平台的可移植性。这种特性方便了 HDFS 作为大规模数据应用平台的推广。 三、 Namenode 和 Datanode HDFS 采用 master/slave 架构。一个 HDFS 集群是由一个 Namenode 和一定数目的 Datanodes 组成。 Namenode 是一个中心服务器,负责管理文件系统的名字空间 (namespace)以及客户端对文件的访问。集群中的 Datanode 一般是一个节