没有合适的资源?快使用搜索试试~ 我知道了~
Hadoop分布式文件系统-架构和设计要点(翻译).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 9 浏览量
2021-10-02
11:36:34
上传
评论
收藏 50KB PDF 举报
温馨提示
试读
50页
Hadoop分布式文件系统-架构和设计要点(翻译).pdf
资源推荐
资源详情
资源评论
Hadoop分布式文件系统:架构和设计要点 ( 翻译)
一、前提和设计目标
1、硬件错误是常态,而非异常情况, HDFS可能
是有成百上千的 server 组成,任何一个组件都
有可能一直失效, 因此错误检测和快速、 自动的
恢复是 HDFS的核心架构目标。
2、跑在 HDFS上的应用与一般的应用不同, 它们
主要是以流式读为主, 做批量处理; 比之关注数
据访问的低延迟问题, 更关键的在于数据访问的
高吞吐量。
3、HDFS以支持大数据集合为目标,一个存储在
上面的典型文件大小一般都在千兆至 T 字节,一
个单一 HDFS实例应该能支撑数以千万计的文
件。
4、 HDFS应用对文件要求的是
write-one-read-many 访问摻型。 一个文件经过
创建、 写,关闭之后就不需要改变。 这一假设简
化了数据一致性问题, 使高吞吐量的数据访问成
为可能。典型的如 MapReduce框架,或者一个
web crawler 应用都很适合这个摻型。
5、移动计算的代价比之移动数据的代价低。一
个应用请求的计算, 离它操作的数据越近就越高
效,这在数据达到海量级别的时候更是如此。 将
计算移动到数据附近, 比之将数据移动到应用所
在显然更好, HDFS提供给应用这样的接口。
6、在异构的软硬件平台间的可移植性。
二、 Namenode和 Datanode
HDFS采用 master/slave 架构。一个 HDFS集
群是有一个 Namenode和一定数目的 Datanode
组成。 Namenode是一个中心服务器,负责管理
文件系统的 namespace和客户端对文件的访问。
Datanode 在集群中一般是一个节点一个,负责
管理节点上它们附带的存储。 在内部, 一个文件
其实分成一个或多个 block ,这些 block 存储在
Datanode 集合里。 Namenode执行文件系统的
namespace操作,例如打开、关闭、重命名文件
和目录,同时决定 block 到具体 Datanode 节点
的映射。 Datanode 在 Namenode的指挥下进行
block 的创建、删除和复制。 Namenode和
Datanode 都是设计成可以跑在普通的廉价的运
行 linux 的机器上。 HDFS采用 java 语言开发,
因此可以部署在很大范围的机器上。 一个典型的
部署场景是一台机器跑一个单独的 Namenode节
点,集群中的其他机器各跑一个 Datanode 实例。
这个架构并不排除一台机器上跑多个
Datanode,不过这比较少见。
单一节点的 Namenode大大简化了系统的架构。
Namenode负责保管和管理所有的 HDFS元数据,
因而用户数据就不需要通过 Namenode(也就是
说文件数据的读写是直接在 Datanode 上)。
三、文件系统的 namespace
HDFS支持传统的层次型文件组织,与大多数
其他文件系统类似, 用户可以创建目录, 并在其
间创建、删除、移动和重命名文件。 HDFS不支
持 user quotas 和访问权限,也不支持链接
(link) ,不过当前的架构并不排除实现这些特
性。真的不掉线
吗??、????????????
Namenode维护文件系统的 namespace,任何
对文件系统 namespace和文件属性的修改都将
被 Namenode记录下来。应用可以设臵 HDFS保存
的文件的副本数目, 文件副本的数目称为文件的
replication 因子,这个信息也是由 Namenode
保存。
四、数据复制
HDFS被设计成在一个大集群中可以跨机器
地可靠地存储海量的文件。 它将每个文件存储成
block 序列,除了最后一个 block ,所有的 block
都是同样的大小。 文件的所有 block 为了容错都
会被复制。每个文件的 block 大小和
replication 因子都是可配臵的。 Replication
因子可以在文件创建的时候配臵, 以后也可以改
变。HDFS中的文件是 write-one ,并且严格要求
在任何时候只有一个 writer 。Namenode全权管
理 block 的复制,它周期性地从集群中的每个
Datanode 接收心跳包和一个 Blockreport 。心跳
包的接收表示该 Datanode 节点正常工作,而
Blockreport 包括了该 Datanode 上所有的 block
组成的列表。
1、副本的存放, 副本的存放是 HDFS可靠性和性
能的关键。 HDFS采用一种称为 rack-aware 的策
略来改进数据的可靠性、 有效性和网络带宽的利
用。这个策略实现的短期目标是验证在生产环境
下的表现, 观察它的行为, 构建测试和研究的基
础,以便实现更先进的策略。庞大的 HDFS实例
一般运行在多个机架的计算机形成的集群上, 不
同机架间的两台机器的通讯需要通过交换机, 显
然通常情况下, 同一个机架内的两个节点间的带
宽会比不同机架间的两台机器的带宽大。
通过一个称为 Rack Awareness 的过程,
Namenode决定了每个 Datanode 所属的 rack id 。
一个简单但没有优化的策略就是将副本存放在
单独的机架上。 这样可以防止整个机架 (非副本
存放)失效的情况, 并且允许读数据的时候可以
从多个机架读取。 这个简单策略设臵可以将副本
分布在集群中, 有利于组件失败情况下的负载均
衡。但是,这个简单策略加大了写的代价, 因为
一个写操作需要传输 block 到多个机架。
在大多数情况下, replication 因子是 3,HDFS
的存放策略是将一个副本存放在本地机架上的
节点,一个副本放在同一机架上的另一个节点,
剩余49页未读,继续阅读
资源评论
资料大全
- 粉丝: 14
- 资源: 26万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功