6-zookeeper-hadoop-ha原理简述-fail

2023-05-16

6-zookeeper-hadoop-ha故障转移机制,原理简述:

HA概述(2.X版本架构)。

1)、HA(High available),即高可用(7*24小时不间断服务。)

1、zookeeper协调服务,通知

2、zkfc是一个zookeeper的一个客户端,用于帮助namenode和zookeeper进行联系,管理namenode的状态。

3、3步骤通过zookeeper通知领一个客户端。

在这里插入图片描述

HDFS-HA集群配置

规划

hadoop102hadoop103hadoop104
NameNodeNameNode
JournalNodeJournalNodeJournalNode
DataNodeDataNodeDataNode
ZKZKZK
zkfczkfczkfc
ResourceManager
NodeManagerNodeManagerNodeManager

1.拷贝原有hadoop。

[root@hadoop102 module]# mkdir ha

[root@hadoop102 module]# cp -r hadoop-3.1.4/ ha/

[root@hadoop102 hadoop]# pwd
/opt/module/ha/hadoop-3.1.4/etc/hadoop

2、配置core-site.xml

core-site.xml



fs.defaultFS
hdfs://mycluster



hadoop.tmp.dir
/opt/module/ha/hadoop-3.1.4/data

在这里插入图片描述

3、配置hdfs.xml

core-site.xml



dfs.nameservices
mycluster



dfs.ha.namenode.mycluster
nn1,nn2



dfs.namenode.rpc-address.mycluster.nn1
hadoop102:9000



dfs.namenode.rpc-address.mycluster.nn2
hadoop102:9000



dfs.namenode.http-address.mycluster.nn1
hadoop102:50070



dfs.namenode.http-address.mycluster.nn2
hadoop102:50070

	 <!-- 指定Namenode元数据在JournalNode上的存放位置 -->
     <property>
            <name>dfs.namenode.shared.edits.dir</name>
			<value>qjournal://hadoop102:8485;hadoop103:8485;hadoop104:8485/mycluster</value>
     </property>




​ dfs.ha.fencing.methods
​ sshfence




dfs.ha.fencing.ss.private-key-files
/root/.ssh/id_rsa




​ dfs.journalnode.edits.dir
​ /opt/module/ha/hadoop-3.1.4/data/jn



​ dfs.permissions.enable
​ false



​ dfs.client.failover.proxy.provider.mycluster
​ org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



​ dfs.ha.automatic-failover.enabled
​ true

4、分发ha

[root@hadoop102 module]# xsync ha

5、启动qjm集群,数据存储的地方。

[root@hadoop102 hadoop-3.1.4]# sbin/hadoop-daemons.sh start journalnode
WARNING: Use of this script to start HDFS daemons is deprecated.
WARNING: Attempting to execute replacement “hdfs --workers --daemon start” instead.

[root@hadoop102 hadoop-3.1.4]# hdfs --workers --daemon start

[root@hadoop102 zookeeper-3.4.10]# jpsall
=============== 192.168.1.102 ===============
14208 QuorumPeerMain
13941 JournalNode
14255 Jps
=============== 192.168.1.103 ===============
13249 QuorumPeerMain
13174 JournalNode
13287 Jps
=============== 192.168.1.104 ===============
13280 Jps
13251 QuorumPeerMain
13175 JournalNode

6、格式化

[root@hadoop102 hadoop-3.1.4]# bin/hdfs namenode -format

7、启动namenode

[root@hadoop102 hadoop-3.1.4]# hdfs -daemon start
在这里插入图片描述

出错,暂停[root@hadoop102 hadoop-3.1.4]# hdfs --workers --daemon stop(需要继续操作)

8、hadoop103拉取namenode

[root@hadoop103 hadoop-3.1.4]#bin/hdfs namenode -bootstrapStandby

9、hadoop103启动

[root@hadoop103 hadoop-3.1.4]#sbin/hadoop-daemon.sh start namenode

[root@hadoop103 hadoop-3.1.4]#sbin/hadoop-daemon.sh start datanode

10、手动standb切换,将nn1切换为active模式

[root@hadoop102 hadoop-3.1.4]#bin/hdfs haadmin transitionToActive nn1

自动故障转移测试

修改core-site.xml

fs.defaultFS hdfs://mycluster hadoop.tmp.dir /opt/module/ha/hadoop-3.1.4/data ha.zookeeper.quorm hadoop102:2181,hadoop103:2181,hadoop104:2181

在这里插入图片描述

修改hdfs-site.xml

dfs.nameservices mycluster dfs.ha.namenode.mycluster nn1,nn2 dfs.namenode.rpc-address.mycluster.nn1 hadoop102:9000 dfs.namenode.rpc-address.mycluster.nn2 hadoop102:9000 dfs.namenode.http-address.mycluster.nn1 hadoop102:50070 dfs.namenode.http-address.mycluster.nn2 hadoop102:50070
             <!-- 指定Namenode元数据在JournalNode上的存放位置 -->
     <property>
            <name>dfs.namenode.shared.edits.dir</name>
            <value>qjournal://hadoop102:8485;hadoop103:8485;hadoop104:8485/mycluster</value>
     </property>


             <!-- 配置隔离机制,即同一时刻只能有一台服务器对外相应,确保没有两个active,不会出现脑裂现象 -->
     <property>
            <name>dfs.ha.fencing.methods</name>
            <value>sshfence</value>
     </property>

             <!-- 使用隔离机制时使用ssh无秘钥登录 -->
     <property>
            <name>dfs.ha.fencing.ss.private-key-files</name>
            <value>/root/.ssh/id_rsa</value>
     </property>


    <!-- 声明journalnode服务器存储目录-->
    <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/opt/module/ha/hadoop-3.1.4/data/jn</value>
    </property>
    <!-- 关闭权限检查-->
    <property>
            <name>dfs.permissions.enable</name>
            <value>false</value>
    </property>
    <!-- 访问代理类:client,mycluster,active配置失败自动切换实现方式-->
    <property>
            <name>dfs.client.failover.proxy.provider.mycluster</name>
            <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    <!-- automatic failover自动故障转移-->
    <property>
             <name>dfs.ha.automatic-failover.enabled</name>
             <value>true</value>
     </property>

在这里插入图片描述

分发etc

[root@hadoop102 hadoop-3.1.4]# xsync etc/

启动QJM集群

[root@hadoop102 hadoop-3.1.4]# hdfs --workers --daemon start

格式化,记得删除data和logs

???Re-format filesystem in Storage Directory root= /opt/module/hadoop-3.1.4/data/dfs/name; location= null ? (Y or N)

[root@hadoop102 hadoop-3.1.4]# bin/hdfs namenode -format

初始化HA在Zookeeper中的状态

[root@hadoop102 hadoop-3.1.4]# bin/hdfs zkfc -formatZK

同步

[root@hadoop103 hadoop-3.1.4]#bin/hdfs namenode -bootstrapStandby

启动HDFS服务

[root@hadoop102 hadoop-3.1.4]# sbin/start-dfs.sh

namenode启

[root@hadoop103 hadoop-3.1.4]#sbin/hadoop-daemon.sh start namenode

学习路径:https://space.bilibili.com/302417610/,如有侵权,请联系q进行删除:3623472230

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6-zookeeper-hadoop-ha原理简述-fail 的相关文章

  • 华为2288 v5服务器安装centos7.9教程

    华为2288 v5服务器安装centos7 9教程 一 准备工作二 centos启动盘制作三 删除 配置RAID四 选择启动项1 开机按F112 选择u盘启动 五 centos安装1 选择语言2 选择安装方式3 选择安装位置 xff08 重
  • Pytorch-gpu版安装教程【注意:无需提前安装cuda和cudnn】

    Pytorch gpu版安装教程 注意 xff1a 无需提前安装cuda和cudnn 1 首先确保你已经安装好Anaconda2 查看自己电脑上显卡的信息 xff0c 通过显卡控制面板查看3 如何根据想要的cuda的版本下载相应的显卡驱动程
  • python调用有道翻译API进行翻译

    python调用有道翻译API进行翻译 步骤 python调用有道翻译API进行翻译准备调用API所需的APPID以及秘钥1 有道智云注册账号2 有道智云注册账号3 创建实例 xff0c 绑定应用4 查看官方文档 python实现对有道翻译
  • Linux安装cuda10.2

    Linux安装cuda10 2 安装其他版本的cuda也可以参考以下步骤 A 进入NVIDIA官网下载安装文件 百度搜索cuda 10 2 点开第一个网页 找到对应自己系统版本的安装文件命令 在命令行中执行给出的代码 xff0c 下载安装文
  • Windows 10 安装anaconda

    Windows 10 安装anaconda 1 下载anaconda安装包2 安装Anaconda3 配置Anaconda环境变量4 检验是否安装成功4 anaconda换源5 python换源 1 下载anaconda安装包 网页搜索清华
  • 排序算法-基数排序

    排序算法 基数排序 算法思想 基数排序是采用多关键字排序思想 xff08 即基于关键字各位的大小进行排序地 xff09 xff0c 借助 分配 收集 两种操作对单逻辑关键字进行排序 基数排序又分为最高位优先 MSD 降序 排序和最低位优先
  • No module named ‘cv2‘ 解决方法

    No module named cv2 解决方法 1 安装opencv python 在使用的虚拟环境中 xff0c 输入以下命令 pip span class token function install span opencv pyth
  • AttributeError:module ‘distutils‘ has no attribute ‘version

    AttributeError module distutils has no attribute 39 version 在使用torch utils tensorboard时 xff0c 出现错误 xff1a 出错语句from torch
  • CPU、GPU、NPU的区别

    CPU GPU NPU的区别 CPU CPU xff08 CentralProcessing Unit xff09 中央处理器 xff0c 是一块超大规模的集成电路 xff0c 主要逻辑架构包括控制单元Control xff0c 运算单元A
  • jdk(Linux+Windows)环境变量配置

    Windows jdk环境变量配置 xff1a PATH JAVA HOME bin JAVA HOME jre bin CLASSPATH JAVA HOME lib JAVA HOME lib tools jar JAVA HOME l
  • 并发编程-生产者消费者模式Java代码实现

    并发编程 生产者消费者模式Java代码实现 生产者消费者模式 生产者仅负责产生结果数据 xff0c 不关心数据该如何处理 xff0c 而消费者专心处理结果数据 消息队列是有容量限制的 xff0c 满时不会再加入数据 xff0c 空时不会再消
  • Java自定义线程池详解及代码实现(非直接调用ThreadPoolExecutor)

    JJava自定义线程池详解及代码实现 非直接调用ThreadPoolExecutor JDK中的线程池函数ThreadPoolExecutorJDK中的线程池执行任务时的流程自定义线程池业务分析自定义线程池的代码实现 注释详尽1 定义阻塞队
  • BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO

    BIO NIO IO多路复用 select poll epoll 信号驱动IO 异步IO Linux用户空间和内核空间阻塞IO xff08 Blocking IO xff09 非阻塞IO xff08 Noblocking IO xff09
  • 离散数学对学计算机有什么用?

    离散数学是计算机专业的一门重要基础课 它所研究的对象是离散数量关系和离散结构数学结构模型 由于数字电子计算机是一个离散结构 xff0c 它只能处理离散的或离散化了的数量关系 xff0c 因此 xff0c 无论计算机科学本身 xff0c 还是
  • VistualBox开机后台启动虚拟机

    有时候我们想学习使用其它的系统时 xff0c 总会面临一个问题 xff0c 装系统 装双系统吧 xff0c 总觉得别扭 xff0c 而且反复切换让人头大 使用虚拟机吧 xff01 每一次都得启动虚拟机然后启动虚拟机中的系统 xff0c 体验
  • ubuntu下循环登录的解决方法

    用老师的电脑跑完程序后出现的情况 xff1a ubuntu下每个的账户输入密码后黑屏一闪后回到登录界面 考虑可能的原因是1 xff0c 磁盘满了 xff0c 无法启动2 xff0c 非法关机 进行尝试 xff1a ctrl 43 alt 4
  • Python,批量删除txt文本指定行

    本文解决问题 xff1a 批量删除多行txt文本中的内容 思路 xff1a 1 找出需要删除行的 id xff08 就是需要删除那些行 xff0c 把这是第几行给记录下来 xff09 2 将原文本内容不需要删除的行 赋予到 新的列表 xff
  • PreparedStatement的解释和优势,PreparedStatement和Statement的比较

    PreparedStatement的解释 xff1a PreparedStatement是java sql包下的一个接口 xff0c 用来执行sql语句查询 xff0c 通过调用conn prepareStatement sql 方法可以获
  • linux删除桌面

    关闭开机的时候启动动画 xff1a 在 boot grub grub cfg 中 xff1a 将 rhgb quiet 改为 quiet 如果没有图形化界面 xff0c 可以使用下面的方法开启网络 xff1a cd etc sysconfi
  • Windows 下PowerShell 美化之旅(极其简单)

    查看本地策略 Get ExecutionPolicy List 如果是上图这种策略就不用改了 xff0c 如果不是就需要输入 set executionpolicy remotesigned 简单介绍一下五种策略 1 Restricted

随机推荐