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

本文介绍HDFS高可用性的实现机制,通过Zookeeper进行自动故障转移,确保系统的稳定运行。主要内容包括配置文件的设置、Zookeeper集群的搭建、HA状态的初始化及故障转移过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

namenode启动都是standby。

  • 利用zookeeper来选举一个为active

ZooKeeper客户端ZKFC: ZKFailoverController

NN HA 自动故障转移原理图

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


    原理图
  • 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)


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



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



    命令执行后
    zookeeper

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


    131为active

    干掉131看一下是否可以自动切换到132的namenode
    131namenode服务器

    132namenode编程active

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值