IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]HDFS HA系列实验之三:HA+NFS+zookeeper

    book_mmicky发表于 2014-05-13 15:22:57
    love 0
    由于时间关系,原规划在Hadoop cluster2上实施HA+NFS+zookeeper的,改成了在Hadoop cluster1上实施,这样省略了ssh无密码登陆配置环节和hadoop集群配置环节。本篇的配置环境是基于HDFS HA系列实验之二:HA+JournalNode+zookeeper  上进行的。

    1:原理图
    HA实验之三:HA+NFS+zookeeper - mmicky - mmicky 的博客
    A:NN1、NN2(或者更多个NN节点)只有一个是Active状态,通过自带ZKFailoverController组件(zookeeper客户端)和zookeeper集群协同对所有NN节点进行检测和选举来达到此目的。
    B:Active NN 的EditLog 写入NFS共享目录/mnt/cluster1中,Standby NN通过共享目录/mnt/cluster1获取Editlog,并在本地运行来保持和Active NN 的元数据同步。
    C:如果不配置zookeeper,可以手工切换Active NN/Standby NN;如果要配置zookeeper自动切换,还需要提供切换方法,也就是要配置dfs.ha.fencing.methods参数。

    2:NFS客户端配置
    启动product201、product202的NFS客户端并设置成启动时自动加载
    [root@product201 /]# chkconfig rpcbind on
    [root@product201 /]# chkconfig nfslock on
    [root@product201 /]# service rpcbind restart
    [root@product201 /]# service nfslock restart
    [root@product201 /]# mkdir -p /mnt/cluster1
    [root@product201 /]# mkdir -p /mnt/cluster2
    [root@product201 /]# chown -R hadoop:hadoop /mnt/cluster1
    [root@product201 /]# chown -R hadoop:hadoop /mnt/cluster2
    [root@product201 /]# mount -t nfs productserver:/share/cluster1 /mnt/cluster1
    [root@product201 /]# mount -t nfs productserver:/share/cluster2 /mnt/cluster2
    [root@product201 /]# echo "mount -t nfs productserver:/share/cluster1 /mnt/cluster1">>/etc/rc.d/rc.local
    [root@product201 /]# echo "mount -t nfs productserver:/share/cluster2 /mnt/cluster2">>/etc/rc.d/rc.local

    3:Hadoop配置
    配置前停止所有和hadoop相关的进程,可以通过jps查看并确认
    A:重建数据目录和日志目录
    所有hadoop节点都要运行
    [hadoop@product201 hadoop220]$ rm -rf mydata logs
    [hadoop@product201 hadoop220]$ mkdir mydata logs

    B:修改配置并发放到各节点
    [hadoop@product201 hadoop220]$ cd etc/hadoop
    [hadoop@product201 hadoop]$ vi hdfs-site.xml
    [hadoop@product201 hadoop]$ cat hdfs-site.xml

    <property> <name>dfs.namenode.shared.edits.dir</name> <value>file:///mnt/cluster1</value> <description>多个namenode共享NFS目录。</description> </property>

    [hadoop@product201 hadoop]$ scp hdfs-site.xml product202:/app/hadoop/hadoop220/etc/hadoop/.  
    [hadoop@product201 hadoop]$ scp hdfs-site.xml product203:/app/hadoop/hadoop220/etc/hadoop/.  
    [hadoop@product201 hadoop]$ scp hdfs-site.xml product204:/app/hadoop/hadoop220/etc/hadoop/.  
    [hadoop@product201 hadoop]$ cd ../..

    4:运行Hadoop
    关于Hadoop HA启动流程图参见HDFS HA系列实验之经验总结
    A:启动zookeeper
    [hadoop@product202 hadoop220]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
    [hadoop@product203 hadoop220]$ /app/hadoop/zookeeper345/bin/zkServer.sh start
    [hadoop@product204 hadoop220]$ /app/hadoop/zookeeper345/bin/zkServer.sh start

    B:格式化namenode并注册zookeeper锁
    [hadoop@product201 hadoop220]$ bin/hdfs namenode -format
    [hadoop@product201 hadoop220]$ bin/hdfs zkfc -formatZK

    C:启动nn1
    [hadoop@product201 hadoop220]$ hadoop-daemon.sh start zkfc
    [hadoop@product201 hadoop220]$ sbin/hadoop-daemon.sh start namenode

    D:启动nn2,在nn2上同步nn1的元数据信息
    [hadoop@product202 hadoop220]$ hadoop-daemon.sh start zkfc
    [hadoop@product202 hadoop220]$ bin/hdfs namenode -bootstrapStandby
    [hadoop@product202 hadoop220]$ sbin/hadoop-daemon.sh start namenode

    E:启动datanode
    [hadoop@product201 hadoop220]$ sbin/hadoop-daemons.sh start datanode

    HA实验之三:HA+NFS+zookeeper - mmicky - mmicky 的博客
     
    HA实验之三:HA+NFS+zookeeper - mmicky - mmicky 的博客
     
    HA实验之三:HA+NFS+zookeeper - mmicky - mmicky 的博客
     

    TIPS:
    相关的hadoop配置文件下载(HA+NFS+Zookeeper)


沪ICP备19023445号-2号
友情链接