搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
HDFS
›
HDFS 联邦,Hadoop的新一代分布式文件系统
0
1
0
分享
HDFS 联邦,Hadoop的新一代分布式文件系统
qz2003
发表于 2013-10-25 10:43:03
[显示全部楼层]
阅读模式
关闭右栏
1
5524
HDFS 联邦
HDFS
联邦,通过一个清晰的分离的命名空间和通用的数据块存储层,
改进了现有的
HDFS
架构。
HDFS
联邦在集群中支持多个命名空间来提高可伸缩行和隔离。
HDFS
联邦扩大了
HDFS
集群对新的实现和使用案例的适用性。
当前
HDFS
概况
HDFS有两个主要的层级划分,命名空间和数据块存储
·
命名空间管理着目录,文件和数据块。它支持文件系统的各种操作,例如:创建文件,修改文件,删除文件,列出文件和目录。
·
数据块存储分为两部分:
o
数据块管理:
维护集群中的数据存储节点。它支持数据块相关的操作例如,创建,删除,修改数据库块,获得数据块的位置。它也关注复制的位置和复制的因子(译者注:复制的块的数目)
o
物理存储:
存储数据块和提供对数据块的读写访问。
当前的HDFS架构在整个集群中允许且仅允许一个单独的命名空间。命名空间被一个单独的namenode节点所管理。这种架构决策实现简单。可是,以上的架构分层实现在实际的实践中导致了一些限制。
仅仅在像Yahoo和Facebook这样的公司才会面对这样的限制。这些限制在HDFS联邦中被解决了。
命名空间和块存储的紧耦合
在namenode节点中,当前的命名空间和块存储的使用方式已经导致了这两个层的紧耦合。这使得实现多个namenode节点成为了一个挑战并且限制了其他服务直接使用块存储。
命名空间的伸缩性
HDFS集群的存储可以通过添加datanode节点实现水平伸缩。命名空间就不能实现水平伸缩。
当前的命名空间仅仅能通过在一个单独的namenode节点上实现垂直伸缩。namenode在内存中存储着整个文件系统的元数据。这限制了文件系统支持的数据块,文件,目录的数量。
这些数据在单独的namenode的内存中容量是有限的。
在Yahoo一个典型的集群部署,包含2700-4200个datanode节点,包含着1.8亿文件和数据块,总共有25PB的数据。
在Facebook HDFS有大概2600个节点3亿个文件和数据块,占用着60PB的存储空间。Hadoop系统对于大多数Hadoop用户来说足够好了,只有少数的超大型应用需要解决命名空间缺乏伸缩性的。
性能
单独的namenode节点限制了文件系统的吞吐,当前支持6万个并发任务的管理。下一代的MapReduce将支持超过10万个并发任务,要达到这个目标需要有多个namenode节点。
隔离
在Yahoo和其他需要公司,集群同时分别被多个用户使用。单独的namenode节点在这种环境之下无法实现隔离。一个分离的命名空间提供给一个用户使用是不可能实现的。一个过载的试验性应用可能导致其他产品的应用速度减慢。一个单独的namenode几点也不允许隔离不同的应用(例如:Hbase)的目录到一个分离的namenode空间中。
HDFS
联邦
为了实现水平伸缩命名服务的目的,联邦使用了多个独立的namenode节点/命名空间。namenode节点被联邦制,命名节点是独立的并且不用和其他命名节点保持数据的一致性。datanode节点被当作通用的块存储节点被所有的namenode节点使用。每一个datanode节点注册在集群中的所有namenode节点中。datanode节点周期性的发送心跳,块报告和处理命令到namenode节点。
块池是一个归属于一个单独的命名空间的块的集合。datanode节点在集群中,为所有的块池存储数据块。
块池之间保持独立,互不干扰。这允许命名空间为新的块生成块ID而不需要和其他的命名空间保持一致性。
一个Block Pool的失败并不妨碍为集群中的其他的Block Pool 和datanode节点。
一个命名空间Block Pool在一起被叫做命名空间卷. 它是一种自包含的管理单元。
当一个namenode/namespace被删除的时候,在datanode节点中的对应的Block Pool 也会被删除。
集群进行更新的时候,每一个命名空间卷作为一个单元被更新。
伸缩性和隔离性
支持文件系统命名空间的多namenode节点的水平伸缩。为用户和应用程序目录分离命名空间卷且改进了隔离性。
通用存储服务
Block Pool抽象开辟了未来的创新架构。
新的文件系统可以建立在块存储之上。新的应用可以直接的建立在块存储层上而不需要使用文件系统接口。新的块池分类也成为了可能,区别于默认的块池。例如,包含一个块池的MapReduce tmp 文件存储使用不同的垃圾回收机制,块池缓存的数据比分布式的缓存更有效。
设计简单
我们考虑了分布式namenode节点方式并选择了联邦的实现方式,是因为他的简单和易于实现。
namenodes和namespaces 是彼此独立的,对于现存的namenodes只需要很少的改动。namenode节点的鲁棒性不会受到影响。联邦也保留了对配置的向后兼容。现存的Namenode的部署不需要任何的配置更改。
实现这些特性和保持新版本的稳定一共花费了4个月的时间。namenode只有很少的改动,大部分的改动在datanode节点上。在存储上引入了块池作为一个新的层次结构,Map的副本和其他的内部数据结构的改动。
其他的改动还有对现有的新的程序的数据结构改动的测试,创建一些工具对联邦集群的简化管理。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(1)人评论
电梯直达
正序浏览
Alkaloid0515
发表于 2013-10-25 10:43:03
谢谢了
,第一次听说这个
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
qz2003
中级会员
关注
55
主题
126
帖子
3
粉丝
TA的主题
Hadoop集群间数据拷贝【分享】
2016-1-13
手机根本访问不了SAE
2013-12-17
基于引擎开发HTML5游戏实战(五)---游戏部署
2013-12-15
HDFS中数据块和文件大小的关系?
2013-10-25
HDFS架构和设计要点(下)
2013-10-25
24小时热文
互联网大厂年终福利曝光:看看别人家老板怎
矩阵分析引论罗家洪(第四版)
像高手一样发言:七种常见工作场景的说话之
携程允许员工春节回乡办公2个月
数据治理实施方案
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈