1 .什么是Hadoop联盟?

Hadoop分布式文件系统-HDFS是世界上最可靠的存储系统。 HDFS是Hadoop的文件系统,用于存储非常大的文件。

HDFS架构遵循主/从拓扑结构。主节点是NameNode,从节点是DataNode。 Namenode存储元数据,即块的数量,它们的位置,副本。这个元数据在主内存中可用,以便更快地检索数据。 NameNode维护和管理从节点,并为它们分配任务。

HDFS联合增强了现有的HDFS体系结构。在之前的HDFS架构中,整个集群只允许单个命名空间。在该配置中,Single NameNode管理命名空间。如果NameNode失败,则整个集群将停止服务。在NameNode重新启动或引入单独的计算机之前,群集将不可用。

Hadoop联盟通过向HDFS添加对许多NameNode /命名空间的支持来克服此限制。

2.目前的HDFS架构

Hadoop HDFS有两个主要层次:

 HDFS 架构

命名空间 – 该层管理文件,目录和块。 该层支持基本的文件系统操作,例如创建,删除文件。

块存储 – 它有两个部分 –

块管理

它支持块的相关操作,如创建,删除块。 它管理集群中的数据节点并负责复制管理。

物理存储

这将块存储在本地文件系统中,并提供对读取或写入操作的访问。

目前的HDFS适用于较小的设置。 但是,对于我们需要处理大量数据的大型组织来说有一些限制。 Hadoop联合处理这些限制。

3.当前HDFS体系结构的局限性

以下是当前HDFS体系结构的一些局限性,它可以通过Hadoop HDFS联合体来克服。

3.1 紧密耦合的块存储和命名空间

名称空间层和存储层紧密耦合。 这样就限制了其他服务直接使用块存储。

3.2 命名空间可伸缩性

命名空间不像datanode那样可伸缩。通过添加datanode来在HDFS集群中进行水平缩放。但是我们不能将更多的名字空间添加到现有的集群中。我们可以在一个名称节点上垂直缩放名称空间。

3.3 性能

Hadoop的整体性能取决于namenode的吞吐量。当前文件系统的操作取决于单个名称节点的吞吐量。 NameNode目前支持6万个并发任务。即将推出的MapReduce将支持超过1,00,000个并发任务。这将需要更多的namenode。

4. HDFS Federation体系结构

Hadoop中的联合使用多个独立的Namenode /名称空间来水平缩放名称服务。 在HDFS联邦体系结构中,底部存在datanode。 datanodes被所有名称节点用作块的公共存储。 每个datanodes注册集群中的所有名称节点。 这些datanode定期发送检测信号,阻止报告并处理来自namenodes的命令。

许多名称节点(NN1,NN2 …,NNn)分别管理许多名称空间(NS1,NS2 …,NSn)。 每个命名空间都有自己的块池(NS1有池1等)。 来自池1的块存储在datanode 1上,依此类推。

4.1  数据块池

数据块集是属于单个名称空间的数据块池。 并且每个块都独立于其他名称空间进行管理。 这允许命名空间为新块创建块ID,而无需与其他名称空间协调。

4.2  命名间卷NS volume

命名空间及其块池是命名空间卷。 HDFS联合中有许多名称空间卷。 每个名称空间卷独立工作。 当我们删除namenode或名称空间时,datanodes上的相应块池也将被删除。

5. HDFS联合的好处

HDFS Federation克服了之前HDFS体系结构的限制。因此HDFS联盟提供:

隔离 – 多用户环境中的单个名称节点没有隔离。在HDFS联合中,应用程序和用户的不同类别可以通过使用多个名称节点来隔离到不同的名称空间。

命名空间可伸缩性 – 在联邦中,许多名称节点在文件系统命名空间中水平放大。

性能 – 我们可以通过添加更多名称节点来提高读/写操作吞吐量。

6  HDFS Federation – 结论

总结HDFS联盟,我们可以说它克服了单节点HDFS架构的局限性。在之前的HDFS架构中,整个集群只允许单个命名空间。虽然Hadoop联合使用许多独立的Namenode /名称空间来水平缩放名称服务。它分隔名称空间层和存储层。因此HDFS联合提供隔离,可伸缩性和简单设计。



关注微信服务号,手机看文章
关注微信服务号,手机看文章