Hadoop namenode HA方案

On 2010年09月20日, in highscalability, by netoearth

作为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

Tagged with:  

Comments are closed.