NFS的方式的HA的配置与启动,和QJM方式基本上是一样,唯一不同的地方就是active namenode和standby namenode共享edits文件的方式,QJM方式是采用journalnode来共享edits文件,而NFS方式则是采用NFS远程共享目录来共享edits文件。

1 准备

文中描述的机器角色包含2个namenode:

  • namenode1

  • namenode2

其中namenode1为active namenode;namenode2为standby namenode。  

2 NFS安装和配置

在namenode1安装nfs,配置,启动。namenode1配置的edits文件的共享目录为/home/dfs/nfs_share_edits/

在namenode2挂载namenode1的远程共享目录,namenode2的本地挂载目录也是/home/dfs/nfs_share_edits/

具体操作可以参考《linux系统NFS的安装和配置》一文。

3 hadoop的配置

只有hdfs-site.xml的dfs.namenode.shared.edits.dir参数和QJM方式的设置不一样。

<property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>file:///home/dfs/nfs_share_edits</value>
</property>

其他的配置都和QJM的配置一样,请参考《hadoop2.0 QJM方式的HA的配置》一文。

4 启动

启动方式也和QJM方式一样,请参考《hadoop2.0 QJM方式的HA的配置》一文。

5 实战tips

  • 要注意nfs共享目录的权限问题。
  • NFS方式本身是没有fencing功能的,所以一定要设置有效的fencing方法,否则会出现“脑裂”问题。fencing方法的设置可以参考《hadoop2.0 QJM方式的HA的配置》一文。

  • 在生产实践中HA还是优先考虑用QJM的方式。

  • NFS HA方式的其他配置参数,包括HA的主备自动切换的配置参数,federation的配置参数,都和QJM方式的一样,可以参考《hadoop2.0 HA的主备自动切换》和《hadoop2.0 federation与HA的配置》。

参考资料

http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/HDFSHighAvailabilityWithNFS.html