elasticsearch7.17.9两节点集群改为单节点
需求
将数据从node-23-1
节点中迁移到node-83-1
节点。但是现在node-83-1
并没有加入到集群中,因此首先将node-83-1
加入到node-23-1
的集群
解决方案
使用ES版本为7.17.9
,最开始设置集群为一个节点,node-23-1
的配置如下
cluster.name: my-application
node.name: node-23-1
path.data: /mnt/sdb/app/elasticsearch-7.17.9-23-1/data
path.logs: /mnt/sdb/app/elasticsearch-7.17.9-23-1/logs
network.host: 0.0.0.0
ingest.geoip.downloader.enabled: false
http.port: 9200
cluster.initial_master_nodes: ["node-23-1", "node-83-1"]
search.max_open_scroll_context: 1024
将node-83-1
节点加入集群
node-83-1
的配置如下:
cluster.name: my-application
node.name: node-83-1
path.data: /home/iie4bu/app/elasticsearch-7.17.9/data/
path.logs: /home/iie4bu/app/elasticsearch-7.17.9/logs/
ingest.geoip.downloader.enabled: false
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["10.26.120.23:9300","10.26.120.83:9300"]
cluster.initial_master_nodes: ["node-23-1","node-83-1"]
search.max_open_scroll_context: 1024
indices.query.bool.max_clause_count: 10240
由于node-23-1
中存在数据,因此要将node-83-1
节点加入到集群中,需要设置discovery.seed_hosts
。
加入集群后,自动平衡数据,当集群状态变为green
后,就可以将node-23-1
踢出集群。
将node-23-1踢出集群
将node-23-1
踢出集群后,报错信息如下:
master not discovered or elected yet, an election requires at least X nodes with ids from [XXXXX]
它其实是说未能选举出一个主节点。
解决办法参考:https://www.cnblogs.com/shanfeng1000/p/14691301.html
如果ES集群是第一次启动,那么需要 cluster.initial_master_nodes 配置指定一个master类型的节点列表来进行选举一个主节点。另外,已经加入集群的节点信息保存在data目录下,以供下次启动使用,这样也就是说cluster.initial_master_nodes就不在起作用了。
每个ES集群都维护一个选举配置集合(Voting Configurations),这个选举集合由可以选举为主节点的master类型节点组成。它除了提供选举功能,还决定者集群的状态,当选举配置集合中超过一半的节点存活时,集群才提供服务(也就是过半原则,通常集群解决脑裂问题都是采用这种方式)
我们可以通过ES提供的API接口来查看选举配置集合中有哪些节点:
curl -X GET "http://localhost:9200/_cluster/state?filter_path=metadata.cluster_coordination.last_committed_config&pretty"
ES官方在删除节点建议中大致说了3点重要信息:
1、一次性删除节点不要太多,比如我们原来集群选举有7个master类型的节点,如果要缩减到只有3个节点的集群,如果直接关掉4个节点,会发现集群挂了,因为不满足过半原则,同时抛出警告:master not discovered or elected yet。
2、建议一个个的删除节点,然后留给集群足够的时间,让它自动调整Voting Configurations中的配置
3、如果只剩下最后两个节点了,那么都不能删除,如果要删除,就要配置Voting configuration exclusions来实现
事实上,ES有个cluster.auto_shrink_voting_configuration配置,默认是true,表示当节点挂掉之后是否调整Voting Configurations,也就是说自动将挂掉的节点从Voting Configurations中剔除,这样也会影响过半原则的判定,比如本来Voting Configurations中有5个节点,它最多可容忍2个节点丢失,如果停了2个节点,那么等ES自动调整Voting Configurations后,集群中还有3个节点,这也就是说还能容忍一个节点丢失,所以我们可以一台一台的停止一些节点,让ES自动从Voting Configurations中剔除掉停止了的节点(切记不要一次停止过多节点,否则可能在Voting Configurations自动调整前而导致不满足过半原则而导致集群停止服务),但是需要注意的是,它旨在master节点大于等于3时有效,也就是说Voting Configurations中至少会保存3个master类型的节点信息。
可能这与上面的描述有点差入,自动调整只能将Voting Configurations中的节点减少到3个,但是当Voting Configurations中有3个master类型节点时,虽然Voting Configurations不会再自动减少节点数,当有一个节点挂掉时,集群还是可以提供服务的,因为它满足过半原则,所以可能作者认为2个和3个节点是一样的吧。
换句话说,对于只有2个或者3个节点的集群,我们就要结合Voting configuration exclusions还实现了。
具体实现
现在要将现在两个节点的集群降为单节点集群,如果我们直接关闭node-23-1
个节点,那么集群因为不满足过半原则而无法提供服务。
Voting configuration exclusions是一个类似于Voting configuration的集合,只是处于这个排除列表中的节点不会被选举,,等同于从选举集合中删除了(链接):
# 查看排除列表curl -X GET "http://localhost:9200/_cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions&pretty"# 添加排除,也就是从配置集合中删除,可以使用节点Id(node_ids)或者节点名称(node_names)来排除,如果执行失败,加上参数 wait_for_removal=false 试试curl -X POST "http://localhost:9200/_cluster/voting_config_exclusions?node_names=<node_names>"curl -X POST "http://localhost:9200/_cluster/voting_config_exclusions?node_ids=<node_ids>"# 清空排除列表curl -X DELETE "http://localhost:9200/_cluster/voting_config_exclusions"
如果执行结果返回:timed out waiting for removal of nodes; if nodes should not be removed, set waitForRemoval to false
可以在执行时在url中添加参数 wait_for_removal=false
上面我这里将node-23-1加入到排除列表之后,node-83-1就会被选举为主节点,这个时候就可以将node-23-1停掉,而后node-83-1还是正常提供服务的
注:操作完成之后,记得清空Voting configuration exclusions
相关文章:
elasticsearch7.17.9两节点集群改为单节点
需求 将数据从node-23-1节点中迁移到node-83-1节点。但是现在node-83-1并没有加入到集群中,因此首先将node-83-1加入到node-23-1的集群 解决方案 使用ES版本为7.17.9,最开始设置集群为一个节点,node-23-1的配置如下 cluster.name: my-app…...
二叉树的层序遍历,力扣
目录 题目地址: 题目: 我们直接看题解吧: 解题方法: 方法分析: 解题分析: 解题思路: 代码实现: 代码补充说明: 题目地址: 102. 二叉树的层序遍历 - 力扣&…...
构建Dockerfile报错/bin/sh: 1: cd: can‘t cd to /xxx/yyy问题记录
目录 关键的命令行 排查分析 原因 附:Dockerfile构建时打印命令输出的办法 关键的命令行 WORKDIR /app COPY record . RUN cd record && xxx 执行到RUN时报了错: /bin/sh: 1: cd: cant cd to /app/record 并且宿主机当前目录也准备好了re…...
Vue常用的修饰符详解(有哪些,怎么用)
文章目录 一、修饰符是什么二、修饰符的作用1.表单修饰符lazytrimnumber 2.事件修饰符stoppreventselfoncecapturepassivenative 3.鼠标按钮修饰符4.键盘修饰符5.v-bind修饰符asyncpropscamel 三、应用场景参考文献 一、修饰符是什么 在程序世界里,修饰符是用于限定…...
Linux C/C++ 获取CPUID
实现方式: INTEL CC 格式 AT^T CC 格式 GCC/C库 __cpuid 宏 大致讲义: AT^T 格式汇编很反人类,GCC可以改编译器选项为INTEL内嵌汇编,但一般在GCC还是按照默认的AT^T汇编来拽写把,不想用也可以让AI工具把INTEL内嵌…...
2023年“中银杯”安徽省网络安全B模块(部分解析)
前言 以下是2023年中银杯安徽省网络安全B模块题目,镜像可以私聊我 B模块安全事件响应/网络安全数据取证/应用安全(400 分) B-1:CMS网站渗透测试 任务环境说明: √服务器场景:Server2206(关…...
194.【2023年华为OD机试真题(C卷)】单行道汽车通行时间(迭代计算—JavaPythonC++JS实现)
请到本专栏顶置查阅最新的华为OD机试宝典 点击跳转到本专栏-算法之翼:华为OD机试 🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握! 文章目录 【2023年华为OD机试真题(C卷)】单行道汽车通行时间(…...
第二证券机构策略:股指预计维持蓄势震荡格局 关注煤炭、电力等板块
第二证券以为,技能面看,在元旦节前资金抄底推进指数收回2900整数关口,并向着3000点渠道压力前进。沪指在底部均线位支撑摆放较强,调整空间估计不大,在3000点渠道下方调整就是再次优化低吸的时机。操作上,在…...
Go 泛型之泛型约束
Go 泛型之泛型约束 文章目录 Go 泛型之泛型约束一、引入二、最宽松的约束:any三、支持比较操作的内置约束:comparable四、自定义约束五、类型集合(type set)六、简化版的约束形式七、约束的类型推断八、小结 一、引入 虽然泛型是…...
【数据仓库与联机分析处理】数据仓库
目录 一、数据仓库的概念 二、数据仓库与操作性数据库的区别 三、发展前期 四、数据仓库的系统结构 五、建模划分 六、主要案例 一、数据仓库的概念 目前很难给数据仓库(Data Warehouse)一个严格的定义,不准确地说,数据仓库…...
机器学习:贝叶斯估计在新闻分类任务中的应用
文章摘要 随着互联网的普及和发展,大量的新闻信息涌入我们的生活。然而,这些新闻信息的质量参差不齐,有些甚至包含虚假或误导性的内容。因此,对新闻进行有效的分类和筛选,以便用户能够快速获取真实、有价值的信息&…...
[C#]基于deskew算法实现图像文本倾斜校正
【算法介绍】 让我们开始讨论Deskeweing算法的一般概念。我们的主要目标是将旋转的图像分成文本块,并确定它们的角度。为了让您详细了解我将使用的方法: 照常-将图像转换为灰度。应用轻微的模糊以减少图像中的噪点。现在,我们的目标是找到带…...
Qt通过pos()获取坐标信息
背景:这是一个QWidget窗体,里面是各种布局的组合,一层套一层。 我希望得到绿色部分的坐标信息(x,y) QPoint get_pos(QWidget* w, QWidget* parent) {if ((QWidget*)w->parent() parent) {return w->pos();}else {QPoint pos(w->po…...
【Webpack】资源输入输出 - 配置资源出口
所有与出口相关的配置都集中在 output对象里 output对象里可以包含数十个配置项,这里介绍几个常用的 filename 顾名思义,filename的作用是控制输出资源的文件名,其形式为字符串,如: module.exports {entry: ./src/a…...
【XR806开发板试用】XR806串口驱动CM32M对小厨宝的控制实验
一.说明 非常感谢基于安谋科技STAR-MC1的全志XR806 Wi-FiBLE开源鸿蒙开发板试用活动,并获得开发板试用。 XR806是全志科技旗下子公司广州芯之联研发设计的一款支持WiFi和BLE的高集成度无线MCU芯片,支持OpenHarmony minisystem和FreeRTOS,具有集成度高、…...
中介者模式-Mediator Pattern-1
如果在一个系统中对象之间的联系呈现为网状结构, 对象之间存在大量的多对多联系,将导致系统非常复杂。 这些对象既会影响别的对象,也会被别的对象所影响。 这些对象称为同事对象,它们之间通过彼此的相互作用实现系统的行为。 在网…...
ASP.NET Core基础之图片文件(一)-WebApi图片文件上传到文件夹
阅读本文你的收获: 了解WebApi项目保存上传图片的三种方式学习在WebApi项目中如何上传图片到指定文件夹中 在ASP.NET Core基础之图片文件(一)-WebApi访问静态图片文章中,学习了如何获取WebApi中的静态图片,本文继续分享如何上传图片。 那么…...
精准掌控 Git 忽略规则:定制化 .gitignore 指南
🧙♂️ 诸位好,吾乃诸葛妙计,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &…...
Harmony 开始支持 Flutter ,聊聊 Harmony 和 Flutter 之间的因果
原创作者:恋猫de小郭 相信大家都已经听说过,明年的 Harmony Next 版本将正式剥离 AOSP 支持 ,基于这个话题我已经做过一期问题汇总 ,当时在 现有 App 如何兼容 Harmony Next 问题上提到过: 华为内部也主导适配目前的主…...
k8s 之7大CNI 网络插件
一、介绍 网络架构是Kubernetes中较为复杂、让很多用户头疼的方面之一。Kubernetes网络模型本身对某些特定的网络功能有一定要求,但在实现方面也具有一定的灵活性。因此,业界已有不少不同的网络方案,来满足特定的环境和要求。 CNI意为容器网络…...
stable diffusion 人物高级提示词(一)头部篇
一、女生发型 prompt描述推荐用法Long hair长发一定不要和 high ponytail 一同使用Short hair短发-Curly hair卷发-Straight hair直发-Ponytail马尾high ponytail 高马尾,一定不要和 long hair一起使用,会冲突Pigtails2条辫子-Braid辫子只写braid也会生…...
限制哪些IP能连接postgre
打开C:\Program Files\PostgreSQL\9.4\data\pg_hba.conf 以下代表本机能连,172.16.73.xx都能连(/24就代表最后一位是0-255),如果是172.16.73.11/32那就是限制了172.16.73.11才能连(实际我设置/32是无效的)&…...
可狱可囚的爬虫系列课程 08:新闻数据爬取实战
前言 本篇文章中我带大家针对前面所学 Requests 和 BeautifulSoup4 进行一个实操检验。 相信大家平时或多或少都有看新闻的习惯,那么我们今天所要爬取的网站便是新闻类型的:中国新闻网,我们先来使用爬虫爬取一些具有明显规则或规律的信息&am…...
mysql2pgsql
使用pgloader进行迁移 pgloader是一个强大的数据迁移工具,专为将不同数据库之间的数据迁移到PostgreSQL而设计。它支持从MySQL到PostgreSQL的迁移,并提供了一种简单且灵活的方式来转移数据。 安装pgloader 使用pgloader迁移数据 1、命令行方式 2、脚…...
设计模式-流接口模式
设计模式专栏 模式介绍模式特点应用场景流接口模式和工厂模式的区别代码示例Java实现流接口模式Python实现流接口模式 流接口模式在spring中的应用 模式介绍 流接口模式是一种面向对象的编程模式,它可以使代码更具可读性和流畅性。流接口模式的核心思想是采用链式调…...
Java 堆与栈的作用与区别
栈是运行时的单位,而堆是存储的单位,栈解决程序的运行问题,堆解决数据存储的问题。 一个线程对应一个线程栈,栈是运行单位,里面存储的信息都是跟当前线程相关的信息,包括局部变量、程序运行状态、方法返回…...
再谈小米汽车
文章目录 1. 外观2. 电机3. 电池4. 风阻5. 强度6. 智能驾驶 我在两年前分析过小米造车的形势,大家可以 点击这里查看。今天小米官宣传了新汽车。看一下它公布的主要信息: 1. 外观 汽车外观是向保时捷致敬,因此它的外观特别像保时捷。不过外…...
Power Apps 学习笔记 - IOrganizationService Interface
文章目录 1. IOrganization Interface1.1 基本介绍1.2 方法分析 2. Entity对象2.1 Constructor2.2 Properties2.3 Methods 3. 相关方法3.1 单行查询 Retrive3.2 多行查询 RetriveMultiple3.3 增加 Create3.4 删除 Delete3.5 修改 Update 4. 数据查询的不同实现方式4.1 QueryExp…...
常见函数的4种类型(js的问题)
• 匿名函数 • 回调函数 • 递归函数 • 构造函数 1、匿名函数 定义时候没有任何变量引用的函数 匿名函数自调:函数只执行一次 (function(a, b){console.log(a b);} )(1, 2);// 等价于 function foo (a, b){console.log(a b); }foo(1, …...
DNS主从服务器、转发(缓存)服务器
一、主从服务器 1、基本含义 DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来,因此辅助服务器的数…...
自动建站网站源码/二十个优化
原标题: 废旧笔记本别再当废品卖掉了!简单拆开件件都是宝物!现在电脑硬件更新换代非常快,一般的电脑用个三五年之后配置就不行了,直接卖掉的话废旧电脑回收价格很低感觉不划算,闲置一旁又开不了机只能吃灰&…...
做网站计划/我要下载百度
Back up 1,右键选中需要备份的数据库,Tasks-->Backup 2.General中,Destination,先remove掉之前的,然后再Add 需要注意的是,add的文件,必须要以.bak为后缀名,否则后面restore的话,…...
企业网站备案密码怎么找回/商丘网站推广公司
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11520 Accepted Submission(s): 5072Problem DescriptionRPG girls今天和大家一起去游乐场玩。最终能够坐上梦寐以求的过山车了。但是,过山车…...
wordpress什么用/友情链接交换方式有哪些
| 极市线上分享 第71期 |一直以来,为让大家更好地了解学界业界优秀的论文和工作,极市已邀请了超过90位技术大咖嘉宾,并完成了70期极市线上直播分享。往期分享请前往bbs.cvmart.net/topics/149,也欢迎各位小伙伴自荐或推荐更多多优…...
亚马逊服务器做影视网站/推广联系方式
大家好,我是华为云的产品经理 恒少: 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流、布道、技术沙龙,但是线下交流,覆盖的用户总还是少数。 我希望可以借线上的平台,和用…...
网站建设包括什么/百度云网盘下载
大部分的数据分析师都或多或少掉入这样的陷阱:每天大部分的工作都花在查数上,干着干着变成了“查数菇”。看上去帮老板或其他同事查数据是数据分析师天经地义的任务,怎么会成为陷阱呢?我来给你分析分析:业务部门需求多…...