HDFS分布式文件系统学习(3)

网友投稿 740 2022-05-30

1.1.3 HDFS联邦

HDFS的联邦,可以简单理解为多个HDFS集群聚合到一起,更准确的理解是有多个NameNode节点的HDFS集群。当集群大到一定程度之后,NameNode进程使用的内存可能会达到上百G,NameNode成为了性能的瓶颈。与此同时,单Active NameNode中维护的元数据都在同一个命名空间中,集群中所的应用程序无法很好地隔离。一个程序操作元数据可能会影响其他运行的程序。

在HDFS联邦中,有多个联合但却相互独立的NameNode,使得HDFS的命名空间可以进行水平拓展。每个NameNode维护着属于自己的命名空间卷,包含命名空间的元数据和一个数据块池(block pool)组成,block pool管理着该命名空间下文件的所有数据块。block pool允许一个命名空间在不通知其他NameNode的情况下为一个新的数据块创建一个BlockID,这样在DataNode向集群中所有NameNode汇报数据块的情况下,每一个命名空间只管理属于自己的一组数据块信息。也因此一个NameNode的服务中断并不会影响其他NameNode中数据的可用性。每个NameNode只负责整个HDFS集群中部分目录。各NameNode间元数据不共享,每个NameNode都有对应的standby。

图 2-3 HDFS联邦机制

HDFS分布式文件系统学习(3)

HDFS的联邦机制主要应用于超大规模文件存储。如互联网公司存储用户行为数据、电信历史数据、语音数据等超大规模数据存储。

1.1.4 数据副本机制

HDFS会把副本放在不同的机架上。如图2-4所示,第一个副本B1在本地机器,第二个副本B2在远端机架,第三个副本B3检测两个副本是否在同一机架,如果是则选择其他机架,否则选择和第一个副本B1相同机架的不同节点,第四个及以上,随机选择副本存放位置。

图2-4  数据副本存储示意图

HDFS系统的机架感知策略的优势是防止由于某个机架失效导致数据丢失,并允许读取数据时充分利用多个机架的带宽。HDFS会尽量让读取任务去读取离客户端最近的副本数据以减少整体带宽消耗,从而降低整体的带宽延时。

对于副本距离的计算公式,HDFS采用如下约定:

(1)Distance(Rack 1/D1 Rack1/D1)= 0  #同一台服务器的距离为0

(2)Distance(Rack 1/D1 Rack1/D3)= 2  #同机架不同服务器距离为2

(3)Distance(Rack 1/D1 Rack2/D1)= 4  #不同机架服务器距离为4

其中,Rack1、Rack2表示机柜标识号,D1、D2、D3表示所在机柜中的DataNode节点主机的编号。即同一主机的两个数据块的距离为0;同一机架不同主机上的两个数据块的距离为2;不同机架主机上的数据块距离为4。

通过机架感知,处于工作状态的HDFS总是设法确保数据块的3个副本(或更多副本)中至少有2个在同一机架,至少有1个处在不同机架(至少处在两个机架上)。

Hadoop 分布式

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Synchronized
下一篇:jmeter学习笔记05 - 配置元件01
相关文章