elasticsearch集群正确关闭、重启方式

2023-11-08

问题原因:

在elasticsearch集群中,当集群发现某个节点关闭时,将延迟一分钟后(默认)再开始将该节点上的分片复制到集群中的其他节点,这可能涉及很多I / O。由于该节点不久将要重新启动,因此该I / O是不必要的。您可以通过在关闭节点之前禁用副本分配来避免。

正确关闭方式:

第一步:

禁止分片自动分布

curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": "primaries"
  }
}
'

第二部:

执行同步刷新

curl -X POST "localhost:9200/_flush/synced?pretty"

注意:

执行同步刷新时,请检查响应以确保没有失败。尽管请求本身仍返回200 OK状态,但在响应正文中列出了由于挂起索引操作而失败的同步刷新操作。如果失败,请重新发出请求。

第三部:

关闭所有节点

如果您使用以下命令运行Elasticsearch systemd:
sudo systemctl stop elasticsearch.service

如果您正在使用SysV运行Elasticsearch init:
sudo -i service elasticsearch stop

如果您将Elasticsearch作为守护程序运行:
kill $(cat pid.txt)

关闭结束后可以执行你任何的更改

正确重启方式:

第一步:

执行完操作后逐个启动节点

cd $ES_HOME
./bin/elasticsearch -d -p $ES_HOME/pid.txt

第二步:

等所有节点启动完成后,可以通过执行如下请求查看集群状态:

curl -X GET "localhost:9200/_cat/health?pretty"
curl -X GET "localhost:9200/_cat/nodes?pretty"

状态分别有:redyellowgreen

当节点加入集群时,它开始恢复本地存储的所有主分片。该_cat/healthAPI最初将报告statusred,表明并非所有的初级碎片已被分配。一旦节点恢复了其本地分片,集群status就会切换到 yellow,表示所有主分片都已恢复,但并非所有副本分片都已分配。这是可以预期的,因为您尚未重新启用分配。将副本的分配延迟到所有节点都yellow可用之后,主服务器便可以将副本分配给已经具有本地分片副本的节点。

第三步:

启用分片自动分布

当所有节点都已加入集群并恢复了其主要分片后,可通过恢复cluster.routing.allocation.enable为其默认值来重新启用分配:

curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
  "persistent": {
    "cluster.routing.allocation.enable": null
  }
}
'

重新启用分配后,集群便开始将副本分片分配给数据节点。此时,恢复索引和搜索是安全的,但是如果您可以等待直到成功分配了所有主分片和副本分片并且所有节点的状态为,集群就会恢复得更快green

您可以使用_cat/health和 _cat/recoveryAPI 监视进度

curl -X GET "localhost:9200/_cat/health?pretty"
curl -X GET "localhost:9200/_cat/recovery?pretty"

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

elasticsearch集群正确关闭、重启方式 的相关文章

随机推荐

  • 《淘宝技术这十年》读书笔记 (二).Java时代的脱胎换骨和坚若磐石

    马云说过 一个好的东西往往是是说不清楚的 姑且不论这句话的对与错 但我真的很佩服 淘宝技术这十年 这本书的作者子柳 能够通过淘宝的一些故事 按照时间顺序和IT发展的各种技术描述清楚 而且过程中读起来非常有意思 该读书笔记中参杂了很多原文的知
  • 将别人的 Git 仓库源码复制一份到自己的新仓库上

    从原地址克隆一份到本地 git clone bare xxxxx git 然后到 Git 创建一个新仓库 进入项目目录 以推送的方式上传代码到自己的 Git 服务上 cd xxxxx git git push mirror xxxxx gi
  • 常用数据库 validationQuery 语句

    在配置数据库连接池的时候 有一个选项validationQuery 该选项用来验证数据库连接的有效性 下表是从网上收集的常用数据库的validationQuery语句 数据库 validationQuery Oracle select 1
  • AI图片修复工具开源-Upscayl:

    Upscayl 可让您使用高级 AI 算法放大和增强低分辨率图像 在不降低质量的情况下放大图像 Upscayl 是一个基于 Linux 优先理念构建的跨平台应用程序 软件已在Github开源 版本齐全 Windows MacOS Linux
  • mysql数据库应用题库_MySQL数据库及应用题库附参考答案.docx

    MySQL数据库及应用题库附参考答案 docx MySQLMySQL 数据库及应用题库附数据库及应用题库附参考参考答案答案 仅供参考 第一章测验 1 单选 计算机进行数据处理经历了从低级到高级的 个发展阶段 A 2 B 3 C 4 D 5
  • 又是一个新的小项目的整理(本文主要是Matlab 调用VBA语言生成Word相关)

    VBA语言 懂得都懂 大概贴一贴代码 这样方便日后查看 利用MATLAB生成Word文档 filespec user pwd test2 0 docx 设定测试Word文件名和路径 判断Word是否已经打开 若已打开 就在打开的Word中进
  • mybatis plus-saveorupdate

    1saveorupdate 1 先update 如果符合条件更新 2 返回布尔值 更新成功表示 更新 更新不成功 新增 3 再save 2updateById 也可以使用updateBy其他字段 筛选条件 update T 筛选器 bool
  • 博途离线比较_如何在TIA Portal中比较两个离线项目?

    摘要 在日常的工作中经常需要比较不同的项目或者不同版本的项目 可以通过 离线 在线 或者 离线 离线 方式来比较 在 离线 在线 比较情况下 其中一个项目是在CPU中 处于在线状态 另一个是存储介质中 处于离线状态 在离线 离线 比较情况下
  • JDBC对Mysql utf8mb4字符集的处理

    在开发微信开放平台 接入微信公众号的数据时 关于用户的nickname和文本消息是 大量出现emoji的文本信息 超时了utf 8字符集的存储范围 在存储数据时 出现部分特殊字符存储字符串失败 服务端解决方案 查阅MySQL官方文档时 给出
  • Informatica跑ETL时,出现ora-26002错误

    用Informatica跑ETL时 出现ora 26002错误 使用BULK时会报这个错误 因为是大批量insert插入所以很多normal insert时该完成的任务没完成 例如表上有索引时 而且BULK不支持update 总结出现这个错
  • vue打印props的值_vue props传值失败 输出undefined的解决方法

    如果在prop中传的值为一个没有使用特殊命名规则的变量如 type 可以顺利传值 而当这个变量为驼峰命名法如 selectName 就会传不过去 解决方法是把selectName标签改为select Name 我是按钮 selectName
  • 关于lcm,gcd的一些性质

    两个整数a b 他们的最大公约数为n 最小公倍数为m 则有 a b都能分解为有限个素数的积 12 2 2 3 1 5 0 30 2 1 3 1 5 1 n为a b所有素因子取较小指数的积 n 2 1 3 1 5 0 6 m为a b所有素因子
  • Win平台高精度Sleep实现

    获取时间戳 GetTickCount Windows平台 可通过GetTickCount和GetTickCount64获取时间戳 它们底层实现是一样的 返回值的位宽不同 GetTickCount返回uint32 t 最大值2 32 单位毫秒
  • OpenCV Python 系列教程2 - OpenCV 的 GUI 特性

    图像入门 学习目标 图像的读取 显示 保存 学习三个函数 cv2 imread cv2 imshow cv2 imwrite 使用 Matplotlib 来显示图像 导入常用包 matplotlib notebook import nump
  • C++ 调用Qml方法

    前言 在Qml和QWidget混合开发中 少不了C 与qml的互相调用 之前总结了一下在qml中调用c 的方法 那反过来如何在业务逻辑中直接修改qml呢 qml调用c 总结 QML和QWidget混合开发 初探 添Qml调用C 方法之自定义
  • IMX6学习记录(9)-实现网络连接,rz/sz文件传输

    上面是我的微信和QQ群 欢迎新朋友的加入 现在我已经自己编译过uboot kernel和rootfs了 遇到一个比较麻烦的事情 拷贝文件需要插拔SD卡 考虑的之后开发的便捷性 准备实现rz sz方式的数据传输 1 修改内核配置 把设备树和默
  • 错误处理--CUDA error: device-side assert triggered(很有效)

    embeding中词的总数设小了 在函数 nn Embedding vocab size embedding dimension 中 参数vocab size 为你字典的总词数 如果在训练中有编号 gt len 字典 的数字出现 就会报这个
  • 服务器怎么打开万向系统,全程监控系统解决方案-20210731072231.doc-原创力文档

    全程监控系统解决方案 全程监控系统解决方案 全程监控系统解决方案 呼集老高速公路 全程监控系统解决方案 二零一零年一月 目录一 需求剖析 错误 不决义书签 二 系统设计方案 错误 不决义书签 系统规划 错误 不决义书签 全程无盲点监控和视频
  • Jira插件安装

    一 Jira插件列表 可以将下面免费插件直接下载 然后登陆jira 在 插件管理 gt 上传插件 将下载后的免费插件直接进行上传安装即可 序号 插件名称 功能概要 供应商 资源 100用户报价 1 GreenHopper 敏捷项目管理 At
  • elasticsearch集群正确关闭、重启方式

    问题原因 在elasticsearch集群中 当集群发现某个节点关闭时 将延迟一分钟后 默认 再开始将该节点上的分片复制到集群中的其他节点 这可能涉及很多I O 由于该节点不久将要重新启动 因此该I O是不必要的 您可以通过在关闭节点之前禁