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

这篇具有很好参考价值的文章主要介绍了(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

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

正文

  • 集群规划
hadoop集群高可用hdfs
hadoop101 hadoop102 hadoop103
NameNode NameNode NameNode
JournalNode JournalNode JournalNode
DataNode DataNode DataNode
Zookeeper Zookeeper Zookeeper
ZKFC ZKFC ZKF
  •  在core-site.xml文件中增加zkfc要连接的zkServer地址

- core-site.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    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.
-->

<!-- Put site-specific property overrides in this 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>

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

  • 在hdfs-site.xml中增加故障转移的配置

- hdfs-site.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    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.
-->

<!-- Put site-specific property overrides in this file. -->
<configuration>
    <!-- NameNode 数据存储目录 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file://${hadoop.tmp.dir}/nn</value>
    </property>
    <!-- DataNode 数据存储目录 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file://${hadoop.tmp.dir}/dn</value>
    </property>
    <!-- JournalNode 数据存储目录 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>${hadoop.tmp.dir}/jn</value>
    </property>
    <!-- 完全分布式集群名称 -->
    <property>
        <name>dfs.nameservices</name>
        <value>mycluster</value>
    </property>
    <!-- 集群中 NameNode 节点都有哪些 -->
    <property>
        <name>dfs.ha.namenodes.mycluster</name>
        <value>nn1,nn2,nn3</value>
    </property>
    <!-- NameNode 的 RPC 通信地址 -->
    <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>
    <!-- NameNode 的 http 通信地址 -->
    <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>
    <!-- 指定 NameNode 元数据在 JournalNode 上的存放位置 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485/mycluster</value>
    </property>
    <!-- 访问代理类:client 用于确定哪个 NameNode 为 Active -->
    <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>
    <!-- 使用隔离机制时需要 ssh 秘钥登录-->
    <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>

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

  • 使用hsync分发修改的配置文件

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

  •  启动zookeeper集群

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

  • 启动 Zookeeper集群后,然后再初始化HA在Zookeeper集群中状态

 命令:hdfs zkfc -formatZK

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

  • 启动HDFS服务

- 命令:start-dfs.sh 

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

  • 关闭hadoop102的active的节点,查看故障是否会转移

 - 当前激活的节点是hadoop102(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移,大数据,# hadoop,大数据,hadoop,hdfs

- 关闭hadoop102的namenode节点

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

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

(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移,大数据,# hadoop,大数据,hadoop,hdfs - 当前激活节点变为hadoop103,hadoop101为备用节点,hadoop102无法访问,实现了故障转移

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

结语

关于hadoop集群之HDFS高可用自动故障转移的内容到这里就结束了,我们下期见。。。。。。文章来源地址https://www.toymoban.com/news/detail-635588.html

到了这里,关于(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【黑马2023大数据实战教程】VMWare虚拟机部署HDFS集群详细过程

    视频:黑马2023 VMWare虚拟机部署HDFS集群 注意!这些操作的前提是完成了前置准备中的服务器创建、固定IP、防火墙关闭、Hadoop用户创建、SSH免密、JDK部署等操作!!! 操作在这里 大数据集群环境准备过程记录(3台虚拟机) 1.上传Hadoop安装包到node1节点中 rz -bey 2.解压缩安装包到

    2023年04月27日
    浏览(40)
  • hadoop HA高可用集群实战

    HA(high available),即高可用(24h不中断服务) 实现高可用最关键的策略是消除单点故障。HA严格来说是应该分成各个组件的HA机制 hadoop2.0之前,在HDFS集群中NamNode存在单点故障(SPOF) NameNode主要存在以下两个方敏影响HDFS集群。 NameNode机器发生意外,如宕机,集群无法使用,

    2024年02月01日
    浏览(47)
  • 【Hadoop】-HDFS集群环境部署[2]

    目录 一、VMware虚拟机中部署 1、安装包下载 2、集群规划 3、上传解压 3.1.上传hadoop安装包到node1节点中 3.2.解压缩安装包到/export/server/中 3.3.构建软连接 4、进入hadoop安装包内 4.1Hadoop安装包目录结构 4.2修改配置文件,应用自定义设置 4.2.1.配置workers文件 4.2.2.配置hadoop-env.sh文件

    2024年04月27日
    浏览(47)
  • Hadoop 3.1.1 HDFS 集群部署

    JDK 1.8.0_133 ZooKeeper 3.5.5:https://blog.csdn.net/weixin_42598916/article/details/135726572?spm=1001.2014.3001.5502 每个节点都需进行如下优化 每个节点都需创建如下路径 每个节点都需配置如下环境变量 以便于后续启停及使用 HDFS 相关脚本和命令 将 /data/service/hadoop 分发至所有节点 HDFS Web UI:10.1

    2024年02月21日
    浏览(42)
  • 使用keepalived解决lvs的单点故障高可用集群

    功能强大 转发策略比较多 适合大型的网络高可用 使用keepalived解决lvs的单点故障高可用集群 准备6台虚拟机,2台做LVS主备调度器,2台做web服务器,1台做存储,1台客户机验证 LVS主备调度器 master(192.168.1.225)backup(192.168.1.226) web1(192.168.1.221)web2(192.168.1.223) 存储(192.

    2024年02月11日
    浏览(45)
  • 大数据实战(hadoop+spark+python):淘宝电商数据分析

    虚拟机:Ubuntu 20.04.6 LTS docker容器 hadoop-3.3.4 spark-3.3.2-bin-hadoop3 python,pyspark, pandas,matplotlib mysql,mysql-connector-j-8.0.32.jar(下载不需要积分什么的) 淘宝用户数据 以上的技术积累需要自行完成 创建容器(##ubuntu的代码块,在ubuntu中运行,无特殊说明的在docker中运行) 更新软件

    2024年02月11日
    浏览(65)
  • 0201hdfs集群部署-hadoop-大数据学习

    下面我们配置下单namenode节点hadoop集群,使用vmware虚拟机环境搭建。vmware虚拟机的配置,在下面链接2有,或者自行查阅文档。hadoop安装包可到官网下载,当前相关软件环境如下: 软件 版本 说明 hadoop 3.3.4 jar包 vmware 15.5 虚拟机 centos 7.6 服务器操作系统 xshell 6 远程连接 jdk 1.8

    2024年02月11日
    浏览(45)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(55)
  • 部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

    目录 前置 一、上传解压 (一 )上传 (二)解压 二、修改配置文件 (一)配置workers文件 (二)配置hadoop-env.sh文件 (三)配置core-site.xml文件 (四)配置hdfs-site.xml文件 三、分发到hp2、hp3, 并设置环境变量 (一)准备数据目录    (二)配置环境变量 四、创建数据目录,并

    2024年04月14日
    浏览(56)
  • 大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现

    图1:MaxCompute MapReduce各个阶段思路设计 设计思路分析分为六个模块:input输入数据、splitting拆分、Mapping映射、Shuffing派发、Reducing缩减、Final result输出。 输入数据:直接读入文本不进行分片,数据项本身作为单个Map Worker的输入。 Map阶段:Map处理输入,每获取一个数字,将数

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包