ZooKeeper体系架构、安装、HA

news2024/11/15 8:46:06

一、主从架构的单点故障问题

主从架构

Hadoop采用了主从架构,其中包含一个主节点和多个从节点。主节点负责管理整个集群的元数据、任务分配等关键任务,而从节点则负责执行具体的数据存储、计算等操作。

单点故障

在Hadoop主从架构中,主节点作为系统的核心组件,一旦发生故障,将直接影响整个集群的可用性和稳定性。

zookeeper解决单点故障

核心:设置备用主节点
切换方案:通过创建临时节点进行选举,当主节点故障时,其他节点检测到并尝试重新创建临时节点,成功创建的节点成为新的主节点,从而实现主节点的自动切换。

二、ZooKeeper的简介和体系架构

简介

ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby的开源实现,是Hadoop和HBase等分布式系统的重要组件。通过提供配置维护、域名服务、分布式同步、组服务等功能,帮助开发人员构建可靠的分布式系统,提供一致性、可靠性和高可用性的服务。

体系架构
在这里插入图片描述

Server:节点
Follower和Leader:节点状态(主从节点)
Client:运行于节点之上的客户端

数据同步:每个节点中的数据将会在其他节点中进行保存备份
切换:当主节点宕机(Leader),将从其他从节点中(Follower)选取一个,变更为主节点

三、Zookeeper的环境搭建

1.单节点

配置文件
zoo.cfg(在conf目录下默认没有此文件,因此需要修改zoo_sample.cfg,复制即可)
zoo.cfg

    dataDir=/root/training/zookeeper-3.4.10/tmp
	server.1=bigdata111:2888:3888

dataDir=/root/training/zookeeper-3.4.10/tmp
数据保存的目录
server.1=bigdata111:2888:3888
指定主机
2888:数据通信端口
3888:选举的端口

/root/training/zookeeper-3.4.10/tmp
在此目录下创建文件myid
输入1,表示当前节点的id

启动

zkServer.sh start

zookeeper集群

部署
仿照上述单节点部署于bigdata112,113,114上
zoo.cfg

server.1=bigdata112:2888:3888
server.2=bigdata113:2888:3888
server.3=bigdata114:2888:3888

myid
每个节点的tmp目录下建立myid文件,按照zoo的后缀分别输入1,2,3
112:1
113:2
114:3

启动与测试HA
三个节点同时启动zookeeper

zkServer.sh start

查看状态

zkServer.sh status

在这里插入图片描述
使用jps kill当前leader的进程致使宕机(114节点宕机)
下图为宕机后的状态,可见112变为leader
在这里插入图片描述
恢复114节点(重启zookeeper),查看3节点状态
可见112为leader,114为follower
在这里插入图片描述

四、Hadoop的HA架构

在这里插入图片描述

五、配置实现Hadoop的HA

六、HDFS联盟

七、搭建HDFS联盟

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

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

相关文章

Linux并发与竞争

一.概念 Linux 是一个多任务操作系统,肯定会存在多个任务共同操作同一段内存或者设备的情况,多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。 Linux 系统并发产生的原因很复杂,总结一下有下面几个主要原…

wegege

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

使用 setResponseStatus 函数设置响应状态码

title: 使用 setResponseStatus 函数设置响应状态码 date: 2024/8/25 updated: 2024/8/25 author: cmdragon excerpt: 通过 setResponseStatus 函数,你可以轻松地在 Nuxt.js 中设置响应的状态码。这不仅能帮助用户更好地理解发生了什么,还能在需要时显示自定义的错误页面。…

深入探讨与优化:常见排序算法的原理、实现与应用场景分析

目录 引言 排序算法的重要性 排序的基本概念 常见排序算法 插入排序 交换排序 选择排序 归并排序 分配排序 排序算法的实现与优化 总结与应用 引言 排序算法在计算机科学中占据了重要位置,它不仅仅是数据处理的基础,也是优化许多复杂算法的关…

初识redis:Zset有序集合

Set作为集合,有两个特点:唯一且无序。 Zset是有序集合,在保证唯一的情况下,是根据什么来排序的呢?排序的规则是什么? Zset中的member引入了一个属性,分数(score)&#…

初识redis:类型补充

Redis最关键的五个数据类型:String List Hash Set Zset 我们已经学完了,接下来我们再了解一下不是那么重要的,但是仍然有用的类型。 Stream Redis Stream 是 Redis 5.0 版本引入的一种新的数据类型,它提供了一种存储时间顺序消息…

《机器学习》—— OpenCV 对图片的各种操作

文章目录 1、安装OpenCV库2、读取、显示、查看图片3、对图片进行切割4、改变图像的大小5、图片打码6、图片组合7、图像运算8、图像加权运算 1、安装OpenCV库 使用pip是最简单、最快捷的安装方式 pip install opencv-python3.4.2还需要安装一个包含了其他一些图像处理算法函数的…

智慧交通——铁路检测相关数据集

数据集列表 智慧交通系列数据集——铁路相关数据集,用于轨道交通、自动化、计算机等专业结合深度学习、目标检测、语义分割、实例分割相关技术实现应用型研究!!! 下载链接:私信获取 目前已更新数据集类型如下&#x…

cola_os学习笔记(下)

cola_os学习笔记(上) os文件夹 cola_device.c ​ .h放在.c的同层级。作者采用了字符设备注册的方式,在.h中可以看到设备属性。也就是把LED这些设备抽象,外面传入"LED1"这样的参数,使我联想到java的new一个…

GoWeb 设置别名和多环境配置

别名 vite.config.ts中添加代码如下即可 //设置别名resolve: {alias: {"": path.resolve(process.cwd(),"src"),//用替代src}}随后即可使用 配置多环境 vite.config.ts中添加代码如下 envDir: ./viteenv,//相对路径随后在项目根目录创建对应的viteenv…

Flink内存调优

Flink内存调优 JVM 我们知道Flink是基于JobManager和TaskManager管理和运行任务,而他们都是以Java进程的形式运行的,所以在了解 Flink 内存时,我们需要先了解一下Java运行时环境Java虚拟机(JVM) 。 JVM 是可运行 Java 代码的假想计算机 &a…

Visio如何对自画的“不规则封闭图案”填充颜色?

Visio如何对自画的“不规则封闭图案”填充颜色? 当我们想要画一个如下所示的不规则图案时,可以根据Visio工具栏中的曲线/直线等进行拼接组成。 但是,画出来的图形即使是组合后也不能直接填充颜色,这是因为软件并不能识别其为一个…

Tomcat上传jsp木马

一、暴力破解 首先我们访问目标IP和端口 点击server status登录,直接burp进行爆破 我们输入tomcat 123 抓包,发现这个Basic是base64编码后的,解码是 tomcat:123 我们暴破时需要注意这里用的base64构成的,具体操作可以看http://…

【微服务】springboot整合对象映射工具MapStruct使用详解

目录 一、前言 二、实体对象映射概述 2.1 什么是实体对象映射 2.1.1 ORM的几个基本概念 2.1.2 ORM常用的框架 2.2 实体对象映射存在的问题 2.2.1 映射配置错误 2.2.2 性能问题 2.2.3 修改字段不一致问题 三、实体对象属性拷贝工具概述 3.1 什么是实体对象属性拷贝工具…

忘掉 Redux,拥抱 Zutand 和 Jotai 的全新世界

Redux 在现代 React 开发中存在着一些明显的局限性。 首先,Redux 的心智负担较重。它涉及到众多概念,如 Store、Reducer、Action 等,对于初学者来说,理解和掌握这些概念需要花费较多的时间和精力。而且,Redux 要求严格…

【MySQL】一文带你理清<表级锁>(表锁,元数据锁,意向锁)

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

MFC程序设计(一) MFC框架

基本概念 SDK:开发软件的套件 WDK:开发驱动的套件 当我们开发驱动时,两者版本需要一致 MFC:Microsoft Fundation class,即微软基础类库。是基于Win32 SDK进行的封装的框架 。 MFC为我们提供了大量的WindowsSDK的代…

js 数组使用 map 结构渲染个性字段

上代码: //arr来自服务端的数据 arr arr.map(i>{return {value: i.id,text: i.co_name} }) 服务端返回的原始数据: 处理后的数据:

全局上下文视觉转换器(Global Context Vision Transformers)

摘要 https://arxiv.org/pdf/2206.09959 我们提出了全局上下文视觉转换器(GC ViT),这是一种新颖的架构,旨在提高计算机视觉中的参数和计算利用率。我们的方法利用全局上下文自注意力模块与标准的局部自注意力相结合,以…

Qt WebAssembly 警告:构建套件中未设置编译器

目录 Qt WebAssembly 警告:构建套件中未设置编译器问题解决方法 参考资料 Qt WebAssembly 警告:构建套件中未设置编译器 问题 安装好QT之后构建套件中出现黄色感叹号Qt WebAssembly 警告:构建套件中未设置编译器。 原因是现在你只安装了qt for webassembly的qt的库&#xff…