HDFS架构图_Apache/百度/腾讯

Hadoop0.23中Federation HDFS

     如下图所示。从逻辑上看,FederationHDFS中命名空间和文件块管理还是由Namenode负责,Datanode负责文件块物理存储和访问,但是FederationHDFS允许在一个集群中运行多个Namenode,每个Namenode负责一个命名空间(可以是非HDFS的命名空间),每个命名空间拥有至少一个逻辑的BlockPool,命名空间和它所拥有的BlockPool统称为一个NamespaceVolume。虽然这些命名空间从物理上看是共享集群中的Datanode,但是在每个Datanode上还是对每个命名空间的BlockPool进行了隔离的,而且Datanode需要向每个相关的Namenode进行汇报。采用FederationHDFS架构,集群失去了统一的命名空间管理,换来的是多个命名空间可自主升级的灵活性和降低集群整体不可用的风险。

HDFS架构图_Apache/百度/腾讯_第1张图片

百度的HDFS2架构

如下图所示,从上到下分大致划分为两个层次:Namespace Federation(原Namenode)和Object Manager Layer(原Datanode)。在Namespace Federation层,HDFS2不再包括文件属性和块管理功能,实现了轻量级命名空间管理,和社区版Federation HDFS类似,Namespace Federation也支持多种命名空间,包括层次化的和平坦的;在Object ManagementLayer中,它不仅负责块的物理存储和访问,还整合了文件属性和块管理功能,每个Datanode对该功能进行了垂直切分,各自管理一部分。客户端访问HDFS2时,通过Namespace找到该文件名对应的Datanode和文件标识,并根据这些信息访问指定的Datanode获取文件属性和它的块信息。但是,HDFS2现有版本还没有实现高可用解决方案。

HDFS架构图_Apache/百度/腾讯_第2张图片

腾讯的XFS

是由搜索部门采用C++开发的分布式文件系统,它也实现了元数据信息的分离,并且通过SDK包兼容HDFS,即让HDFS运行在XFS上。如下图所示,XFS中命名空间由Master进行管理,XFS的Master通过主从热备实现了高可用解决方案,由Zookeeper实现监控、选举和切换;文件标识和块管理由独立的MetaServer进行管理,它记录了文件属性、长度以及该文件拥有的块等信息;与Datanode类似,块物理存储和访问由NodeServer负责。客户端在访问XFS时,先通过文件名在Master上获取MetaServer标识和文件标识等信息,然后在指定的MetaServer上获得需要请求的文件信息或者块信息,如果要访问文件的块,则通过NodeServer获取块内容。

HDFS架构图_Apache/百度/腾讯_第3张图片

forward from http://blog.csdn.net/nexus/article/details/7387616

你可能感兴趣的:(HDFS架构图_Apache/百度/腾讯)