大数据||zookeeper来实现HDFS自动故障转移

namenode启动都是standby。

  • 利用zookeeper来选举一个为active

ZooKeeper客户端ZKFC: ZKFailoverController

NN HA 自动故障转移原理图

  • Zookeeper FC对Namenode进行生命状态监控

    《大数据||zookeeper来实现HDFS自动故障转移》 原理图

  • zookeeper集群

通过配置文件实现故障转移

  • 启用故障转移(hdfs-site.xml)
    <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
    </property>
  • 故障转移依赖zookeeper集群
    <property>
    <name>ha.zookeeper.quorum</name>
    <value>hadoop-senior.beifeng.com:2181,hadoop-senior02.beifeng.com:2181,hadoop-senior03.beifeng.com:2181</value>
    </property>

自动故障转移启动

  • 关闭所有HDFS 服务 sbin/stop-dfs.sh(131节点)
    停止顺序:namenode->datanode->journalnode
  • 向子节点(132/133)同步core-site.xml和hdfs-site.xml

命令:scp -r etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml root@hadoop-senior02.beifeng.com:/opt/app/hadoop-2.5.0/etc/hadoop/

  • 启动Zookeeper 集群 bin/zkServer.sh start (131,132,133)

    《大数据||zookeeper来实现HDFS自动故障转移》

  • 初始化 HA 在Zookeeper中状态 bin/hdfs zkfc -formatZK
    对ha在zookeeper中的状态进行初始化
    在zookeeper服务器上创建一个目录(hadoop-ha)
    通过zookeeper客户端可以看一下这个过程。
    查看:bin/zkCli.sh -server 192.168.57.131:2181
    注意添加ip要不然就会报错。

    《大数据||zookeeper来实现HDFS自动故障转移》

    命令执行前服务器目录结构

    《大数据||zookeeper来实现HDFS自动故障转移》
    命令执行后
    《大数据||zookeeper来实现HDFS自动故障转移》 zookeeper
    《大数据||zookeeper来实现HDFS自动故障转移》 client

  • 启动HDFS服务 sbin/start-dfs.sh
    启动顺序 namenode–>datanode–>journalnode–>zkfc

    《大数据||zookeeper来实现HDFS自动故障转移》
    《大数据||zookeeper来实现HDFS自动故障转移》 131为active
    干掉131看一下是否可以自动切换到132的namenode
    《大数据||zookeeper来实现HDFS自动故障转移》 131namenode服务器
    《大数据||zookeeper来实现HDFS自动故障转移》 132namenode编程active
    zookeeper集群死掉后不影响hdfs文件系统,只是不能够故障自动转移了。

  • 在各个NameNode节点上启动DFSZK Failover Controller,先在那台机器启动,
    那个机器的NameNode就是Active NameNode
    sbin/hadoop-daemon.sh start zkfc

    原文作者:志辉聊码
    原文地址: https://www.jianshu.com/p/e219017eee4d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞