(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移

前言

本节内容主要介绍一下hadoop集群下实现HDFS高可用的自动故障转移,HDFS高可用的自动故障转移主要通过zookeeper实现故障的监控和主节点的切换。自动故障转移为 HDFS 部署增加了两个新组件:ZooKeeper 和 ZKFailoverController (ZKFC)进程。ZooKeeper 是维护少量协调数据,通知客户端这些数据的改变和监视客户端故障的高可用服务。在开始本节内容之前,我们需要提前安装好zookeeper集群,可参考作者往期博客内容。

正文

  • 集群规划

|-------------|-------------|-------------|
| hadoop101 | hadoop102 | hadoop103 |
| NameNode | NameNode | NameNode |
| JournalNode | JournalNode | JournalNode |
| DataNode | DataNode | DataNode |
| Zookeeper | Zookeeper | Zookeeper |
| ZKFC | ZKFC | ZKF |
[hadoop集群高可用hdfs]

  • 在core-site.xml文件中增加zkfc要连接的zkServer地址
  • core-site.xml配置

    复制代码
      <!-- 把多个 NameNode 的地址组装成一个集群 mycluster -->
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://mycluster</value>
      </property>
    
      <!-- 指定hadoop数据的存储目录 -->
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/opt/module/hadoop-3.1.3/data</value>
      </property>
    
      <!-- 配置HDFS网页登录使用的静态用户为hadoop -->
      <property>
          <name>hadoop.http.staticuser.user</name>
          <value>hadoop</value>
      </property>
    
      <!-- 指定 zkfc 要连接的 zkServer 地址 -->
      <property>
          <name>ha.zookeeper.quorum</name>
          <value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value>
      </property>
  • 在hdfs-site.xml中增加故障转移的配置
  • hdfs-site.xml配置

    dfs.namenode.name.dir file://${hadoop.tmp.dir}/nn dfs.datanode.data.dir file://${hadoop.tmp.dir}/dn dfs.journalnode.edits.dir ${hadoop.tmp.dir}/jn dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2,nn3 dfs.namenode.rpc-address.mycluster.nn1 hadoop101:8020 dfs.namenode.rpc-address.mycluster.nn2 hadoop102:8020 dfs.namenode.rpc-address.mycluster.nn3 hadoop103:8020 dfs.namenode.http-address.mycluster.nn1 hadoop101:9870 dfs.namenode.http-address.mycluster.nn2 hadoop102:9870 dfs.namenode.http-address.mycluster.nn3 hadoop103:9870 dfs.namenode.shared.edits.dir qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485/mycluster dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa
    复制代码
      <!-- 启用 nn 故障自动转移 -->
      <property>
          <name>dfs.ha.automatic-failover.enabled</name>
          <value>true</value>
      </property>
  • 使用hsync分发修改的配置文件
  • 启动zookeeper集群
  • 启动 Zookeeper集群后,然后再初始化HA在Zookeeper集群中状态

命令:hdfs zkfc -formatZK

  • 启动HDFS服务
  • 关闭hadoop102的active的节点,查看故障是否会转移
  • 当前激活的节点是hadoop102

  • 关闭hadoop102的namenode节点

  • 发现故障并未转移,每个服务需要独立安装psmisc,实现服务通信,命令:yum install psmisc -y

- 当前激活节点变为hadoop103,hadoop101为备用节点,hadoop102无法访问,实现了故障转移

结语

关于hadoop集群之HDFS高可用自动故障转移的内容到这里就结束了,我们下期见。。。。。。

相关推荐
大大大大晴天12 小时前
Hudi Metadata Table 与 Hive Sync (HMS)怎么选?
大数据
手可摘星辰77719 小时前
一次线上FlinkCDC异常排查复盘
大数据·flink
大大大大晴天19 小时前
Hudi技术内幕:Metadata Table原理与实践
大数据
大大大大晴天2 天前
Hudi技术内幕:深入解析Index索引机制
大数据
阿里云大数据AI技术2 天前
Flink Forward Asia 2026 深圳启幕:Agentic Streaming for AI,开启实时智能新范式
大数据·flink
SelectDB2 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
大大大大晴天6 天前
Hudi技术内幕:RecordPayload到RecordMerger
大数据
SelectDB6 天前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
WhoAmI6 天前
MapReduce框架原理解析一:InputFormat
大数据·hadoop
WhoAmI6 天前
MapReduce框架原理解析三:OutputFormat
大数据·hadoop