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

namenode启动都是standby。

  • 利用zookeeper来选举一个为active

ZooKeeper客户端ZKFC: ZKFailoverController

  • 给namenode添加失效备缓监控器(ZKFC: ZKFailoverController),131和132

NN HA 自动故障转移原理图

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


    大数据||zookeeper来实现HDFS自动故障转移_第1张图片
    原理图
  • zookeeper集群

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

  • 启用故障转移(hdfs-site.xml)

    dfs.ha.automatic-failover.enabled
    true
  • 故障转移依赖zookeeper集群

    ha.zookeeper.quorum
    hadoop-senior.beifeng.com:2181,hadoop-senior02.beifeng.com:2181,hadoop-senior03.beifeng.com:2181

自动故障转移启动

  • 关闭所有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 [email protected]:/opt/app/hadoop-2.5.0/etc/hadoop/

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


    大数据||zookeeper来实现HDFS自动故障转移_第2张图片
  • 初始化 HA 在Zookeeper中状态 bin/hdfs zkfc -formatZK
    对ha在zookeeper中的状态进行初始化
    在zookeeper服务器上创建一个目录(hadoop-ha)
    通过zookeeper客户端可以看一下这个过程。
    查看:bin/zkCli.sh -server 192.168.57.131:2181
    注意添加ip要不然就会报错。


    大数据||zookeeper来实现HDFS自动故障转移_第3张图片

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



    命令执行后
    zookeeper

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

    大数据||zookeeper来实现HDFS自动故障转移_第4张图片

    大数据||zookeeper来实现HDFS自动故障转移_第5张图片
    131为active

    干掉131看一下是否可以自动切换到132的namenode
    大数据||zookeeper来实现HDFS自动故障转移_第6张图片
    131namenode服务器

    大数据||zookeeper来实现HDFS自动故障转移_第7张图片
    132namenode编程active

    zookeeper集群死掉后不影响hdfs文件系统,只是不能够故障自动转移了。

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

你可能感兴趣的:(大数据||zookeeper来实现HDFS自动故障转移)