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集群正确关闭、重启方式 的相关文章

  • Elasticsearch 中的分析器有什么用?

    我在理解弹性搜索分析器时遇到一些问题 它的用途是什么以及如何使用它 From 本文 https www elastic co blog found text analysis part 1 有来自源文本的分词器和分词过滤器 我是否无法理解来
  • 如何用Python为ElasticSearch创建只读客户端?

    我想从 ES 读取数据 但不想意外向其中写入数据 无索引操作 这只是一种安全措施 以便以后修改查询函数的其他人不允许插入数据 当你说你想要只读客户端时 客户端强调您系统中的同一集群可能有其他客户端 然后阻止整个索引为只读将会阻止所有客户端的
  • 使elasticsearch中的所有对象嵌套对象

    是否可以让elasticsearch中的所有嵌套对象自动映射到默认嵌套的类型 而不是对象 是的 您可以使用以下方法来做到这一点动态模板 https www elastic co guide en elasticsearch referenc
  • 分割多重多边形

    我可以直接取出零件并把它们取出来作为它们自己的功能吗 或者这会涉及更复杂的东西吗 我正在尝试将其中一张地图拆分为较小的部分以对它们进行索引 https github com simonepri geo maps https github c
  • Elasticsearch 崩溃后无法恢复

    磁盘空间不足 导致 Elasticsearch 分片崩溃 三个节点现在为红色 两个节点已恢复 它们的状态为黄色 ES 的 CPU 利用率为 150 内存利用率很高 正在尝试恢复它们 但似乎存在一些版本匹配冲突 我清理了磁盘空间并删除了分片的
  • 分面搜索的后过滤器和全局聚合之间有什么区别?

    搜索界面中的一个常见问题是您想要返回结果的选择 但可能想返回有关所有文档的信息 例如 我想查看所有红色衬衫 但想知道什么 其他颜色可供选择 这有时被称为 多面结果 或者 多面导航 这Elasticsearch 参考中的示例 https ww
  • match_none 有什么用?

    我浏览了docs https www elastic co guide en elasticsearch reference current query dsl match all query html query dsl match no
  • 按字段关联 ELK 中的消息

    相关 在ELK中合并日志和查询 https stackoverflow com questions 28429607 combine logs and query in elk 我们正在设置 ELK 并希望在 Kibana 4 中创建可视化
  • 如何在logstash.conf文件中创建多个索引?

    我使用以下代码在logstash conf中创建索引 output stdout codec gt rubydebug elasticsearch host gt localhost protocol gt http index gt tr
  • 使用 KMS 的 AWS RDS 加密是否会影响性能?

    Amazon states https aws amazon com about aws whats new 2015 01 06 amazon rds encryption with kms mysql postgresql that 加
  • 如何在弹性搜索中生成多个布尔查询的查询

    我想使用 spring 框架在 elasticsearch 中动态生成多个布尔运算的查询 我在elasticsearch中的数据就像 masterID
  • ElasticSearch 嵌套查询 - 排除父文档

    尝试排除其中子文档之一与查询不匹配的顶级文档 对于下面的示例 我尝试排除其嵌套作业之一具有的所有文档current true 并与company name Elastic 但由于嵌套作业文档之一与current false和公司name E
  • Elasticsearch 单个字段的多个分析器

    我使用严格的预定义映射将不同类型的文档存储在单个索引中 它们都有一些字段 例如 body 但我希望在索引时对它们进行稍微不同的分析 例如 对特定文档使用不同的标记过滤器 并在搜索时以相同的方式处理 据我所知 分析器不能按文档指定 我还考虑使
  • 弹性搜索文档计数

    我正在运行 2 2 版本的 Elastic 搜索 我已经创建了索引并加载了示例文档 我发现其中有些问题 当我给予 GET index type count 我得到了正确的答案 count 9998 shards total 5 succes
  • search_after 在弹性搜索中如何工作?

    我一直在尝试在我们的应用程序中使用 Elasticsearch 但分页限制为 10k 对我们来说实际上是一个问题 并且由于必须超时问题 滚动 API 也不是推荐的选择 我发现 Elasticsearch 有一个叫做 search after
  • Elasticsearch:根据类型对不同字段进行排序

    我的索引中有两种类型 Event and City 我正在尝试按日期将它们全部排序 但是 每种类型的日期字段名称都不同 为了Event该值是在updated at领域和City日期是在update at其嵌套对象之一中的字段city eve
  • 如何使用scala获取elasticsearch中_delete_by_query api的状态

    我正在 scala 中向 elasticsearch 发送 HTTP post Http s http elkIp 5051 indexName delete by query postData s query terms zip id k
  • 自动完成建议中的输出字段

    当我想在 elasticsearch 中索引文档时 会发生此问题 message MapperParsingException failed to parse nested IllegalArgumentException unknown
  • ElasticSearch - 尝试在 Windows 上启动服务时出错

    昨天 我在 Windows Server 2012 R2 上完成了 ElasticSearch 的安装 并且能够正常启动 ElasticSearch 服务 今天 我安装了 Kibana 和 X Pack 但在尝试启动 ElasticSear
  • 适用于elasticsearch 7.0.1 和 kibana 7.0.1 的 docker-compose.yml

    我在 Windows 10 上将 Docker Desktop 与 Linux 容器结合使用 并希望通过 docker compose 文件启动最新版本的 elasticsearch 和 kibana 容器 使用 6 2 4 等旧版本时一切

随机推荐

  • 《淘宝技术这十年》读书笔记 (二).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是不必要的 您可以通过在关闭节点之前禁