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

news2024/11/27 23:44:59

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/91965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jsp+ssm计算机毕业设计毕业设计管理系统【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

Qt扫盲-QScrollBar理论总结

QScrollBar理论总结1. 简述2. 滚动条组成3. 常用设置5. 信号6. 键盘功能1. 简述 QScrollBar其实就是一个滚动条控件&#xff0c;它使用户能够访问大于用于显示文档的小组件的文档部分。它提供了用户在文档中的当前位置以及可见的文档量的可视指示。滚动条通常配备其他控件&…

什么是MOS管的米勒效应

在说MOS管的米勒效应之前我们先看下示波器测量的这个波形: 这个波形其实就是这个MOS管开关电路的波形&#xff0c;探头1这个黄色的测量的是MOS管的栅极&#xff0c;探头2这个蓝色的测量的是MOS管漏极 大家有没有发现这个黄色的波形在上升的过程中出现了一个平台&#xff0c;其实…

一年半经验如何准备前端面试

typeof NaN 的结果是什么&#xff1f; NaN 指“不是一个数字”&#xff08;not a number&#xff09;&#xff0c;NaN 是一个“警戒值”&#xff08;sentinel value&#xff0c;有特殊用途的常规值&#xff09;&#xff0c;用于指出数字类型中的错误情况&#xff0c;即“执行数…

如何快速拥有好的测试idea

如果接手任意一个测试任务&#xff0c;如何开始测试以及怎么快速的形成测试点呢?其实也是有一套小套路的。大概整理了下&#xff0c;可以从6个方面来考虑入手。 1.项目 快速了解项目背景、信息对象、项目风险、测试资料、债务、交流、语境分析、交付品、工具。 项目的提出动机…

0~9岁|一文讲清楚精细动作有多重要

人都有两宝&#xff1a;“双手和大脑”。 在我们的脑中枢神经内&#xff0c;有一部分专门掌管手部动作&#xff0c;手部动作越精细&#xff0c;与之对应的大脑神经元也就越发达。作为儿童智能的重要组成部分&#xff0c;精细动作还是衡量儿童神经系统发育的一个重要指标。 一、…

C++:继承、模板、CRTP:谈谈C++多态设计模式(三):函数模板

1&#xff1a;模板的概念 C中不止有 面向对象编程思想&#xff0c;还要泛型编程思想。而泛型编程思想的核心就是 模板 模板的建立大大提搞了复用行&#xff0c;C中的模板包括 &#xff1a;函数模板和类模板。 2&#xff1a;函数模板基本语法 函数模板 概念&#xff1a; 建立…

细粒度图像分类论文研读-2018

文章目录Object-Part Attention Model for Fine-grained Image Classification&#xff08;by localization- classification subnetwork&#xff09;AbstractIntroductionObject- Part Attention ModelObject- Part Spatial Constraint ModelOur OPAM ApproachObject-level At…

Flink从入门到放弃—Stream API—clean()方法

文章目录导航clean()案例贴上源码导航 涉及到文章&#xff1a; Flink从入门到放弃—Stream API—Join实现&#xff08;即多流操作&#xff09; Flink从入门到放弃—Stream API—常用算子&#xff08;map和flatMap&#xff09; Flink从入门到放弃—Stream API—常用算子(filter…

讲解Redis的主从复制

Redis 主从复制1 主从复制2 作用3 主从复制架构图4 搭建主从复制5 使用规则1 主从复制 主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据 无法解决: 1.master节点出现故障的自动故障转移 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到…

数据挖掘的步骤有哪些?

所谓数据挖掘就是从海量的数据中&#xff0c;找到隐藏在数据里有价值的信息。因为这个数据是隐式的&#xff0c;因此想要挖掘出来并不简单。那么&#xff0c;如何进行数据挖掘呢&#xff1f;数据挖掘的步骤有哪些呢&#xff1f;一般来讲&#xff0c;数据挖掘需要经历数据收集、…

openEuler 倡议建立 eBPF 软件发布标准

eBPF 是一个能够在内核运行沙箱程序的技术&#xff0c;提供了一种在内核事件和用户程序事件发生时安全注入代码的机制&#xff0c;使得非内核开发人员也可以对内核进行控制。随着内核的发展&#xff0c;eBPF 逐步从最初的数据包过滤扩展到了网络、内核、安全、跟踪等&#xff0…

软件测试之测试用例评审

一、评审目的 一般来说&#xff0c;参加测试用例评审的人员包括对应项目的产品人员、设计人员、开发人员和测试人员。 图1-1 测试用例评审相关人员 测试用例评审会议的发起者一般是测试人员&#xff0c;既然我们是发起者&#xff0c;那我们发起这个会议的目的是什么呢&#x…

【Java开发】 Spring 11 :Spring Boot 配置 Web 运行参数并部署至服务器

Spring Boot 项目开发结束后的工作便是运维&#xff0c;简单来说需要配置 Web 运行参数和项目部署两大工作&#xff0c;本文将尽可能详细地给大家讲全&#xff01; 目录 1 定制 Web 容器运行参数 1.1 运行参数介绍 1.2 项目搭建 ① 通过 IDEA Spring Initializr 创建项目 …

使用nginx代理服务器上的docker容器接口

假如项目通过自动化部署在了docker容器里面&#xff1a;教程在这里vue使用dockernodenginxlinux自动化部署_1024小神的博客-CSDN博客 怎么将nginx通过域名绑定到这个容器呢&#xff1f; 例如我们将一个二级域名绑定second.1024shen.com/#/ 到我们的服务 我们需要先在域名解析…

阿里P8专家整理的面试秘籍,我看了三个月,成功入职京东,税前30K

入职京东&#xff0c;月薪30K 今年三月份的时候&#xff0c;我从上一家外包公司裸辞。那时正值疫情期间&#xff0c;实在受不了公司的压迫&#xff0c;毅然决然的选择了离职。 卧薪尝胆三个月后&#xff0c;才收到京东的offer&#xff0c;谈到了30k的月薪顺利入职。 本来那时…

DPDK源码分析之l2fwd

什么是L2转发 2层转发&#xff0c;即对应OSI模型中的数据链路层&#xff0c;该层以Mac帧进行传输&#xff0c;运行在2层的比较有代表性的设备就是交换机了。 当交换机收到数据时&#xff0c;它会检查它的目的MAC地址&#xff0c;然后把数据从目的主机所在的接口转发出去。 交…

SSM 学习管理系统

SSM 学习管理系统 SSM 学习管理系统 功能介绍 首页 图片轮播展示 网站公告 学生注册 教师注册 课程资料 视频学习 友情链接 资料详情 学习进度 评论 收藏 后台管理 登录 管理员管理 修改密码 网站公告管理 友情链接管理 轮播图管理 学生管理 班级管理 我的班级管理 教师管理…

微信小程序 | 小程序的内置组件

&#x1f5a5;️ 微信小程序专栏&#xff1a;微信小程序 | 小程序的内置组件 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️…

【轻量级开源ROS 的机器人设备(4)】--(3)通信实现

前文链接 【轻量级开源ROS 的机器人设备&#xff08;4&#xff09;】--&#xff08;2&#xff09;通信实现_无水先生的博客-CSDN博客 六、数据流 数据流 虽然 XML-RPC 为远程方法调用提供了一种简单而干净的协议&#xff0c;但其冗长和以文本为中心的编码使其不适合高带宽和低…