HDFS的QJM方案
Quorum Journal Manager仲裁日志管理器
- 介绍
- 主备切换,脑裂问题解决---ZKFailoverController(zkfc)
- 主备切换,脑裂问题解决-- Fencing(隔离)机制
- 主备数据状态同步问题解决
- HA集群搭建
- 集群基础环境准备
- HA集群规划
- 上传安装包,配置环境变量
- HA集群初始化
介绍
- Quorum Journal Manager(仲裁日志管理器),是Hadoop官方推荐的hdfs HA解决方案之一
- 使用zookeeper中ZKFC来实现主备切换
- 使用Journal Node(JN)集群来实现edits log的共享以达到数据同步的目的。

主备切换,脑裂问题解决—ZKFailoverController(zkfc)
ZK FAi咯verCON他蹂躏了人是一个zookeeper客户端。主要职责:
- 监视和管理namenode健康状态
ZKFC通过命令监视namenode节点及机器的健康状态 - 维持和ZK集群联系
如果本地namenode运行状况良好,并且ZKFC看到当前没有其他节点持有锁znode,它将自己尝试获取该锁。如果成功,则表明它“赢得了选举”,并负责运行故障转移以使其本地namenode处于active状态。如果极硬呦其他节点持有锁,zkfc选举失败,则会对该节点注册监听,等待下次选举。


主备切换,脑裂问题解决-- Fencing(隔离)机制
- 故障转移过程也就是俗称的主备角色切换的过程,切换过程中最怕的就是脑裂的发生。因此需要Fencing机制来避免,将先前的active节点隔离,然后将standby转换为active状态
- Hadoop公共库中对外提供了两种Fenc ing实现,分别是sshfence和shellfence(却省实现)
sshfence是通过ssh登陆目标节点上,使用命令fuser将进程杀死(通过tcp端口号定位进程pid,该方法比ips命令更准确)
shellfence是指执行一个用户事先定义的shel命令(脚本)完成隔离
主备数据状态同步问题解决
- Journal Node(JN)集群是轻量级分布式系统,主要用于高速读写数据,存储数据
- 通常使用2N+1台Journal Node存储共享Edits Log(编辑日志)。----底层类似zk德分布式一致性算法
- 任何修改操作在active NN上执行时,Journal Log进程同时也会记录edits log到至少半数以上的JN中,这时Standby NN检测到JN里面的同步log发生变化了会读取JN里面的edits log,然后重演操作记录同步到自己的目录镜像树里面

HA集群搭建
集群基础环境准备

HA集群规划

上传安装包,配置环境变量

HA集群初始化


相关文章:
HDFS的QJM方案
Quorum Journal Manager仲裁日志管理器 介绍主备切换,脑裂问题解决---ZKFailoverController(zkfc)主备切换,脑裂问题解决-- Fencing(隔离)机制主备数据状态同步问题解决 HA集群搭建集群基础环境准备HA集群规…...
安装win版本的neo4j(2023最新版本)
安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量(也可选择直接点击快捷方式,就可以不用配环境了)3. 启动neo4j 测试代码遇到的问题及解决(每次环境都太离谱了,各种问题)连接…...
ChatGPT结合知识图谱构建医疗问答应用 (二) - 构建问答流程
一、ChatGPT结合知识图谱 上篇文章对医疗数据集进行了整理,并写入了知识图谱中,本篇文章将结合 ChatGPT 构建基于知识图谱的问答应用。 下面是上篇文章的地址: ChatGPT结合知识图谱构建医疗问答应用 (一) - 构建知识图谱 这里实现问答的流程…...
聊天系统登录后端实现
定义返回的数据格式 # Restful API from flask import jsonifyclass HttpCode(object):# 响应正常ok 200# 没有登陆错误unloginerror 401# 没有权限错误permissionerror 403# 客户端参数错误paramserror 400# 服务器错误servererror 500def _restful_result(code, messa…...
Ajax笔记_01(知识点、包含代码和详细解析)
Ajax_01笔记 前置知识点 在JavaScript中 问题1:将数组转为字符串,以及字符串转为数组的方式。 问题2、将对象转为字符串,以及字符串转为对象的方法。 方法: 问题1: 将数组转为字符串可以使用 join() 方法。例如&…...
Eureka 学习笔记2:EurekaClient
版本 awsVersion ‘1.11.277’ EurekaClient 接口实现了 LookupService 接口,拥有唯一的实现类 DiscoveryClient 类。 LookupService 接口提供以下功能: 获取注册表根据应用名称获取应用根据实例 id 获取实例信息 public interface LookupService<…...
Spring引入并启用log4j日志框架-----Spring框架
<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…...
Redis实现延时队列
缓存队列延时向接口报工,并支持多实例部署。 引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-data</artifactId><version>3.17.4</version> </dependency> 注入RedisClient …...
无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据
目录 背景 思路 新建两个函数A和B,函数 A处理字典数据,被调用后,判断传递的参数,如果参数为字典,则调用自身; 如果是列表或者元组,则调用列表处理函数B; 函数 B处理列表&#x…...
信息学奥赛一本通——1180:分数线划定
文章目录 题目【题目描述】【输入】【输出】【输入样例】【输出样例】【提示】 AC代码 题目 【题目描述】 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入…...
SpringApplication对象的构建及spring.factories的加载时机
构建SpringApplication对象源码: 1、调用启动类的main()方法,该方法中调用SpringApplication的run方法。 SpringBootApplication public class SpringbootdemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootdemoApplication.class, …...
基于传统检测算法hog+svm实现图像多分类
直接上效果图: 代码仓库和视频演示b站视频005期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示: 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…...
slice() 方法,使用 concat() 方法, [...originalArray],find(filter),移出类名 removeAttr()
在JavaScript中,在 JavaScript 中,clone 不是一个原生的数组方法。但是你可以使用其他方法来实现克隆数组的功能。 以下是几种常见的克隆数组的方法: 使用 slice() 方法: const originalArray [1, 2, 3]; const clonedArray …...
Zabbix报警机制、配置钉钉机器人、自动发现、主动监控概述、配置主动监控、zabbix拓扑图、nginx监控实例
day02 day02配置告警用户数超过50,发送告警邮件实施验证告警配置配置钉钉机器人告警创建钉钉机器人编写脚本并测试添加报警媒介类型为用户添加报警媒介创建触发器创建动作验证自动发现配置自动发现主动监控配置web2使用主动监控修改配置文件,只使用主动…...
ELK日志分析系统概述及部署
ELK 平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kibana 三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。 一、ELK概述 1、组件说明 ①ElasticSearch ElasticSearch是基于Lucene(一个全文…...
HTML拖拽
拖拽的流程:鼠标按下(mousedown)→鼠标移动(mousemove)→鼠标松开(moveup) 需要理解的几个api: clientX/clientY: 相对于浏览器视窗内的位置坐标(不包括浏览器收藏夹和顶部网址部分)pageX/pageY: 该属性会考虑滚动,如…...
【vue】 vue2 监听滚动条滚动事件
代码 直接上代码,vue单文件 index.vue <template><div class"content" scroll"onScroll"><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容</p><p>内容…...
k8s目录
k8s笔记目录,更新中... 一 概念篇 1.1概念介绍 1.2 pod 1.3 controller 1.3.1 deployment 1.3.2 statefulset 1.3.3 daemonset 1.3.4 job和cronJob1 1.4 serivce和ingress 1.5 配置与存储 1.5.1 configMap 1.5.2 secret 1.5.3 持久化存储 1.5.4 pv和…...
设计模式行为型——解释器模式
目录 什么是解释器模式 解释器模式的实现 解释器模式角色 解释器模式类图 解释器模式举例 解释器模式代码实现 解释器模式的特点 优点 缺点 使用场景 注意事项 实际应用 什么是解释器模式 解释器模式(Interpreter Pattern)属于行为型模式&…...
使用 Webpack 优化前端开发流程
在现代前端开发中,构建工具的选择和优化流程的设计至关重要。Webpack 是一个功能强大的前端构建工具,能够优化我们的开发流程,提高开发效率和项目性能。本文将介绍如何使用 Webpack 来优化前端开发流程。 代码优化和资源管理也是前端项目中不…...
缺失值处理太慢?重复检测卡顿?Polars 2.0清洗提速秘技,一文掌握5大核心模式
第一章:Polars 2.0数据清洗性能瓶颈的本质剖析Polars 2.0 在引入 LazyFrame 默认执行模型与物理计划优化器后,显著提升了复杂 ETL 流水线的吞吐能力,但实际数据清洗场景中仍频繁出现 CPU 利用率不均、内存驻留时间过长及 UDF 执行退化等现象。…...
利用快马平台与openclaw切换模型功能,快速构建待办事项应用原型
最近在尝试快速构建一个待办事项应用的原型时,发现InsCode(快马)平台的AI代码生成功能特别适合这种场景。通过平台内置的openclaw切换模型功能,可以快速比较不同AI模型生成的代码风格差异,大大缩短了原型开发周期。下面分享下我的实践过程&am…...
线性结构之链表[基于郝斌课程]
每个结点只有一个前续结点每个结点只有一个后续结点首结点没有前续结点尾结点没有后续结点专业术语:首结点:第一个有效结点,存放第一个有效数据尾结点:最后一个有效结点,存放最后一个有效数据头结点:在首结…...
湖南石材结晶公司
在长沙,无论是高端商场、星级酒店,还是政务大厅、三甲医院,光洁如镜、平整如砥的石材地面,都是其专业形象与高端质感的直接体现。然而,石材作为“面子工程”,长期承受高频人流、设备碾压,极易出…...
GLM-4.1V-9B-Base实战教程:跨境电商A+页面图像卖点自动提炼
GLM-4.1V-9B-Base实战教程:跨境电商A页面图像卖点自动提炼 1. 为什么需要自动提炼图像卖点 跨境电商卖家每天需要处理大量商品图片,传统人工标注方式存在三个痛点: 效率低下:一个运营人员每天最多处理50-100张图片成本高昂&…...
Vivado Design Suite中BUFG优化策略与实战技巧
1. 理解BUFG的核心作用与设计痛点 在FPGA设计中,时钟信号就像人体神经系统中的电脉冲,需要快速、准确地传递到每个功能单元。BUFG(全局时钟缓冲器)就是Xilinx器件中专用的"信号放大器",它能将时钟信号分配到…...
嵌入式STM32开发者的Gitee协作指南:如何用.gitignore管好你的Hex和工程文件
嵌入式STM32开发者的Gitee协作指南:如何用.gitignore管好你的Hex和工程文件 在嵌入式开发领域,STM32系列微控制器的项目开发往往伴随着大量中间文件的生成——从Keil MDK编译产生的.hex、.axf,到STM32CubeIDE自动创建的Debug文件夹࿰…...
【限时解禁】Cuvil编译器v0.9.3内部架构设计图(含Python动态类型静态化映射表),仅开放72小时
第一章:Cuvil 编译器在 Python AI 推理中的应用Cuvil 是一款面向 AI 工作负载的轻量级领域专用编译器,专为优化 Python 生态中基于 PyTorch 和 ONNX 的模型推理而设计。它通过静态图重写、算子融合与硬件感知调度,在不修改用户代码的前提下&a…...
Windows 11下Keil5 MDK与C51共存安装全攻略(附ST-Link驱动避坑指南)
Windows 11下Keil5 MDK与C51共存安装全攻略(附ST-Link驱动避坑指南) 在嵌入式开发领域,Keil作为经典开发工具链,其MDK(Microcontroller Development Kit)和C51版本分别服务于ARM架构和8051架构单片机开发。…...
3步突破Navicat试用期限制:让数据库管理工具持续为你服务
3步突破Navicat试用期限制:让数据库管理工具持续为你服务 【免费下载链接】navicat_reset_mac navicat16 mac版无限重置试用期脚本 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 作为数据库开发者的日常伴侣,Navicat以其直观的…...
