您的位置:首页 > Web前端 > Node.js

Hadoop namenode HA方案

2011-11-22 16:08 344 查看
作为Hadoop集群的关键节点,Namenode的单点成为这个分布式系统的最大单点风险。Hadoop社区和各个主要分支都想了很多解决方案来解决这个问题。这里把我找到的一些方案列出来供大家参考:

AvatarNode方案

当online节点在提供服务的时候,另一个影子节点作为热备。Online的namenode会把每一个操作都复制/同步到影子节点上。当两个节 点都完成后再返回给用户完成。当online节点正常时,影子节点处于safemode,不对外提供服务,只和online节点同步数据。当online 节点故障时,可以直接把VIP漂移到影子节点上。

这个方案的优点是基本上是热备。切换时间很短

缺点大概是同步的时间成本。对用户的操作的响应时间的影响。

有兴趣的可以看下code:

https://issues.apache.org/jira/browse/HDFS-976

方案的相关blog:

http://hadoopblog.blogspot.com/2010/02/hadoop-namenode-high-availability.html

DRBD方案

使用DRBD+Heartbeat来搭建namenode的HA体系。使用DRBD来同步硬盘上的数据,然后通过heartbeat来实现切换。

这个方案的缺点,就是它实际上是冷备。切换之后namenode本身的初始化时间就很长。

方案的简单blog:
http://de-de.facebook.com/note.php?note_id=106157472002
zookeeper方案

1. NameNode 作为master server,维持自己的mateData ,在hadoop的name.dir 项目的配置中,可以设置多个路径,NameNode将自动同步这多条路径的数据。

2.NameNode 的全部持久化数据来自配置文件和name.dir 目录,只要保证这两者一样,nameNode 的status也完全一样

具体的解决方案,使用zookeeper管理NameNodede之间的切换

这个方案据说facebook, baidu都在做相关的测试。但是我自己还没有研究过细节。

相关的blog:
http://www.cnblogs.com/commond/archive/2009/07/28/1533223.html
转载:http://blog.netoearth.com/html/201009/hadoop-namenode-ha%E6%96%B9%E6%A1%88.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息