如何解决Hadoop重构的问题

来源: 互联网作者:孙宁
2015/2/11 10:54:32
在Hadoop的2.X Yarn版中,不会存在HA的问题。但在Yarn中,主控节点中只有一个是活动的,只有这一个主控节点为客户端提供服务,其他主控节点在这期间没有发挥任何作用。

分享到: 新浪微博 腾讯微博
本文关键字: Hadoop 元数据

在Hadoop的1.x版本中,存在着一些问题,例如HA和过多的小文件。

在Hadoop的2.X Yarn版中,不会存在HA的问题。但在Yarn中,主控节点中只有一个是活动的,只有这一个主控节点为客户端提供服务,其他主控节点在这期间没有发挥任何作用。笔者认为这是对主控节点的浪费。

解决方案

Hadoop主控节点不存储元数据,而是对HDFS正在写入的文件加锁。

元数据应该存储在其他位置,这可以被称为元数据节点集群,所有的主控节点都可以访问元数据节点集群。

元数据节点群集可以使用Zookeeper实现。我们可以使用Zookeeper树模型作为文件系统树的模型。如果znode是文件节点,那么它应该具有znode型子节点,并且子节点描述数据块信息,该文件znode包含自身数据来描述文件本身,如文件长度和文件的访问信息等。

Zookeeper自然是支持集群,所以我们不用担心HA.。

如果有太多的小文件,那我们就应该用元数据节点集群来存储元数据,并且使用随便规则,以确定文件应被存储在哪个集群上。元数据节点集群应该能被显式的添加到系统中。

当客户端希望写一个文件时,主控节点应检查元数据是否存在着该文件的写锁定标志。

如果没有写锁定标志,主控节点应在文件znode中添加写锁定标志,然后客户端如常写入文件。在客户端完成后,主控节点清除写锁定标志。

如果存在写锁定标志,主控节点应拒绝客户的要求或延迟请求,并把请求放入请求队列中,让客户等待,直到写锁定标志被清除。

如果我们对读操作使用保守策略,在客户端读取文件时,主控节点应检查现有文件是否存在写标记。如果不存在写标记,客户端照常读取文件,并告知其他客户端该文件被锁定写入。

如果我们对读操作使用乐观策略的,主控节点可以忽略写锁定标志,照常读取。

结论

在重构之后,所有的主控节点可以在同一时间为客户端提供服务,并且小文件问题也被解决了。

责编:李玉琴
vsharing 微信扫一扫实时了解行业动态
portalart 微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
畅享
首页
返回
顶部
×
畅享IT
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918
Baidu
map