(十二)大数据实战——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配置

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    复制代码
      http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License. See accompanying LICENSE file.

    -->

    <configuration>
    复制代码
      <!-- 把多个 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>
    </configuration>
  • 在hdfs-site.xml中增加故障转移的配置
  • hdfs-site.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    复制代码
      http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License. See accompanying LICENSE file.

    -->

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

命令:hdfs zkfc -formatZK

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

  • 关闭hadoop102的namenode节点

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

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

结语

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

相关推荐
琅琊榜首20207 小时前
AI生成脑洞付费短篇小说:从灵感触发到内容落地
大数据·人工智能
TTBIGDATA7 小时前
【knox】User: knox is not allowed to impersonate admin
大数据·运维·ambari·hdp·trino·knox·bigtop
紧固视界8 小时前
了解常见紧固件分类标准
大数据·制造·紧固件·上海紧固件展
无忧智库8 小时前
跨国制造企业全球供应链协同平台(SRM+WMS+TMS)数字化转型方案深度解析:打造端到端可视化的“数字供应链“(WORD)
大数据
乐迪信息10 小时前
乐迪信息:AI防爆摄像机在船舶监控的应用
大数据·网络·人工智能·算法·无人机
Hernon10 小时前
AI智能体 - 探索与发现 Clawdbot >> Moltbot
大数据·人工智能·ai智能体·ai开发框架
Mikhail_G10 小时前
Mysql数据库操作指南——排序(零基础篇十)
大数据·数据库·sql·mysql·数据分析
7***n7511 小时前
2026年GEO深度评测:AI时代营销新基建的实践者与分化
大数据·人工智能
你才是臭弟弟11 小时前
Amazon S3 和 MinIO (数据湖的选型)
大数据·云原生
guizhoumen12 小时前
2026年建站系统推荐及选项指南
大数据·运维·人工智能