没有合适的资源?快使用搜索试试~ 我知道了~
Hadoop分布式文件系统:结构与设计
4星 · 超过85%的资源 需积分: 2 7 下载量 138 浏览量
2013-10-27
17:20:26
上传
评论
收藏 8.48MB DOC 举报
温馨提示
试读
11页
Hadoop 分布式文件系统 (HDFS)是一个设计为用在普通硬件设备上的分布式文件系统。它与现有的分布式文件系统有很多近似的地方,但又和这些文件系统有很明显的不同。HDFS是高容错的,设计为部署在廉价硬件上的。HDFS对应用程序的数据提供高吞吐量,而且适用于那些大数据集应用程序。HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据。HDFS最初是为了Apache 的Nutch网络搜索引擎项目的下层构件而设计的。是Hadoop项目的一部分,而这又是Apache的 Lucene项目的一部分。
资源推荐
资源详情
资源评论
Hadoop 分布式文件系统:结构与设计
目录
1. 介绍
Hadoop 分布式文件系统 (HDFS)是一个设计为用在普通硬件设备上的分布式文件
系统。它与现有的分布式文件系统有很多近似的地方,但又和这些文件系统有很明显的
不同。HDFS 是高容错的,设计为部署在廉价硬件上的。HDFS 对应用程序的数据提供高
吞吐量,而且适用于那些大数据集应用程序。HDFS 开放了一些 POSIX 的必须接口,容
许流式访问文件系统的数据。HDFS 最初是为了 Apache 的 Nutch 网络搜索引擎项目的下
层构件而设计的。是 Hadoop 项目的一部分,而这又是 Apache 的 Lucene 项目的一部分。
本项目的地址是:http://projects.apache.org/projects/hadoop.html。
2. 假设与目标
2.1. 硬件错误
硬件错误是正常的,而不是异常。HDFS 实例由成百上千个服务器组成,每个都
存储着文件系统的一部分数据。事实上,这就会有大量的组件,而每个组件出故障的可
能性都很大,这意味着 HDFS 总有一些组件是不能工作的。因此,检测错误并快速自动
恢复就成了 HDFS 的核心设计目标。
2.2. 流式数据访问
运行在 HDFS 上的应用程序需要流式的访问它们的数据集,它们也不是通常运行
在普通文件系统上的普通应用程序。HDFS 为了那些批量处理而设计的,而不是为普通
用户的交互使用。强调的是数据访问的高吞吐量而不是数据访问的低反应时间。POSIX
强加的很多硬性需求是 HDFS 上应用程序所不需要的, 这些 POSIX 语义在一些关键环
境下被用来提高数据的吞吐频率。
2.3. 大数据集
运行在 HDFS 上的应用程序使用大数据集。HDFS 一个典型的文件可能是几 GB
的或者几 TB 的。因此,HDFS 适用于大文件。这将提供高集成带宽,并在一几集群中提
供上百个结点。一个实例可能支持上千万个文件。
2.4. 简单一致性模型
HDFS 的应用程序需要对文件实行一次性写,多次读的访问模式。文件一旦建立
后写入,文件就不需要再更改了。这样的假定简化了数据一致性问题并使高数据吞吐量
成为可能。MapReduce 程序或者网络爬虫程序就很适合使用这样的模型。当然未来计划
支持增量写。
2.5. 移动计算环境比移动数据划算
如果就在数据的旁边就执行对这些数据的操作,那么程序所使用的设备就会很高
效。这当文件相当巨大的时候就尤其正确。这可以减少网络的拥塞和提高系统的吞吐量。
这个假设还意味着,常常是把计算迁移到数据存储的近处更好,而不是把数据传输到程
序运行的地方。HDFS 提供了程序接口以便把他们自己移动到数据存储的地方执行。
2.6. 跨硬件和软件平台的移动
HDFS 设计为容易的从一个平台移动到另一个平台。这有助于 HDFS 被采用做为
一个大程序集合的工作平台。
3. 名字结点和数据结点
HDFS 是主/从结构的。一个集群有一个名字结点,也就是主控制服务器,负责管
理文件系统的名字空间并协调客户对文件的访问。还有一堆数据结点,一般一个物理结
点上部署一个,负责它们所在的物理结点上的存储管理。HDFS 开放文件系统的名字空
间以便让用户数据存储的文件中。内部,一个文件被分割为一个或者多个数据块,这些
数据块存储在一组数据结点中。名字结点执行文件系统的名字空间操作,比如打开、关
闭、重命名文件或目录,还决定数据块从数据结点的映射。数据结点负责提供客户的读
写请求。数据结点还依照名字结点的指令执行数据块的创建、删除复制工作。
名字结点和数据结点是设计为运行在普通机器上的软件组件。这些机器大多运行
GNU/Linux 操作系统。HDFS 使用 JAVA 语言来实现;任何支持 JAVA 的机器都可以运行
名字结点和数据结点软件。使用高度可以移植的 JAVA 语言意味着 HDFS 可以被很多种
机器使用。一个典型的部署有一台指定的机器只运行名字结点,体系结构并不排除在那
台机器上也运行数据结点,但是现实中的部署很少那样使用。
一个集群中只有一个名字结点大大简化了系统机构。名字结点做为所有系统元数
据的存储和仲裁者。系统这样设计就会使用户数据从不会流经名字结点。
4. 文件系统的名字空间
HDFS 支持传统的文件组织体系结构。用户或者程序可以创建目录,并在目录中
存储文件。名字空间的结构和大多现有文件系统类似。你可以创建、删除文件,把文件
从一个目录移动到另一个目录,或者重命名文件。HDFS 还没有实现用户配额和访问权
限控制,也不支持硬连接和软连接。当然体系也不妨碍实现这些特性。
名字结点维护系统的名字空间,它将记录名字空间内的任何改动或者名字空间本
身的属性改动。用户可以指定 HDFS 中文件复制的份数,这个份数称为复制因子,由名
剩余10页未读,继续阅读
资源评论
- 蔚蓝的风2014-02-22这个论文不错,有一定的参考价值
青鸟闲居
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功