关键词:elasticsearch , es , 滚动重启 , 禁止分片

由于之前es GC没有怎么调优,结果今天被大量scroll查询查挂了,GC 卡死了。然后为了先恢复给业务使用,也没什么其他办法,只能重启server。重启的时候傻逼了,忘记了禁止分片,于是起来后集群就在重新做分片迁移了。这里记录一下ES部分重启或滚动重启的步骤。

参考:https://www.elastic.co/guide/en/elasticsearch/guide/current/_rolling_restarts.html

一般情况下可能是server因为GC、负载等原因卡死了,或升级了需要重启的配置了,这类场景下会要重启部分server或整个集群滚动重启。但是在这类重启场景下,ES的数据实际是没丢失的(指的是ES已经存下的数据,正在写入的数据需要客户端去自己做好重试)。

具体步骤就参见上面的官方文档link了:

  1. If possible, stop indexing new data. This is not always possible, but will help speed up recovery time. (补充:如果可以的话,最好停止读写后jmap触发强制GC看看有没机会让假死的程序恢复,虽然一般停止用户读写可能性不大;另,在停止服务前可以的话建议做好flush操作,但不是必须。)
  2. Disable shard allocation. This prevents Elasticsearch from rebalancing missing shards until you tell it otherwise. If you know the maintenance window will be short, this is a good idea. You can disable allocation as follows:

    PUT /_cluster/settings
    {
    "transient" : {
    "cluster.routing.allocation.enable" : "none"
    }
    }
  3. Shut down a single node.
  4. Perform a maintenance/upgrade.
  5. Restart the node, and confirm that it joins the cluster.
  6. Reenable shard allocation as follows:

    PUT /_cluster/settings
    {
    "transient" : {
    "cluster.routing.allocation.enable" : "all"
    }
    }

    Shard rebalancing may take some time. Wait until the cluster has returned to status greenbefore continuing.

  7. (repeat前建议先确认集群状态,看看有没重启后出现问题)Repeat steps 2 through 6 for the rest of your nodes.
  8. At this point you are safe to resume indexing (if you had previously stopped), but waiting until the cluster is fully balanced before resuming indexing will help to speed up the process.

Elasticsearch 滚动重启 必读的更多相关文章

  1. ElasticSearch关闭重启命令

    很多人学习elasticSearch都是自学,想百度一下如何重启es也是没有答案,我硬着头皮,算是琢磨出来了,借此写博,希望能帮助您. 1.如何关闭ES,elasticsearch关闭办法 1.使用h ...

  2. elasticsearch安全重启节点

    elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级.但是业务不能停,如果直接kill掉节点,可能导致数据丢失.而且集群会认为该节点挂掉了,就开始转 ...

  3. linux 添加elasticsearch 开机重启(自启动)

    在 /etc/init.d 文件夹下建立脚本 eg:data.sh #chkconfig: 2345 80 90#description:auto_run#!bin/bashexport JAVA_H ...

  4. elasticsearch的重启

    没有重启的操作,只有关闭了再启动的操作. ps -ef | grep elastic e表示全部的进程,f表示展示进程间的相关关系,如父子进程. 然后找到你启动es的那个账号,不是root,一般是新建 ...

  5. elasticsearch如何安全重启

    elasticsearch如何安全重启节点 问题: elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级.但是业务不能停,如果直接kill掉节 点, ...

  6. elasticsearch之节点重启

    Elasticsearch节点重启时背后发生的故事有哪些,应该注意哪些配置内容,本篇文章做一个简单的探讨. 节点离开 在elasticsearch集群中,假设NodeA因为种种原因退出集群,在Node ...

  7. elasticsearch 大集群,双重别名,滚动更新分词方案

    elasticsearch 滚动更新分词 国内用ik.hanlp.ansj或基于其二次开发的比较多 必然有分词变更的操作(主要是是加词) reindex+别名可以解决一部分问题,但在大集群上会影响业务 ...

  8. Elasticsearch集群运维

    一.索引管理 1. 创建索引 PUT test-2019-03 { "settings": { "index": { "number_of_shard ...

  9. Elasticsearch 监控和部署

    Elasticsearch: ! [ https://elasticsearch.cn/book/elasticsearch_definitive_guide_2.x/_cluster_health. ...

随机推荐

  1. h5页面使用js实现保存当前图片到手机相册

    很可惜,这个鬼东西微信内置浏览器不适用 页面: <!doctype html> <html> <head> <meta charset="UTF-8 ...

  2. 2019年最受欢迎IMX6系列开发板,资料全开源,助力产品研发不在话下

    迅为IMX6开发板: Android4.4系统  Linux + Qt5.7系统  Ubuntu12.04系统 部分真实案例:HMI:3D打印机:医疗设备:工控机:触控一体机:车载终端 板载:4G全网 ...

  3. day16——函数式编程和内置函数

    编程的方法论 面向过程:找到问题的 函数式:不可变.不用变量保存状态.不修改变量 面向对象: 高阶函数: 满足俩个特性任意一个即为高阶函数 1.函数的传入参数是一个函数名 2.函数的返回值是一个函数名 ...

  4. memcache的基本操作

    1.linux下启动memcache [root@localhost ~]# memcached -d -m 512 -u root -p 12266 -c 256 参数名称及意义: -d   以守护 ...

  5. Python 正则表达式 flags 参数

    flags参数 re.I IGNORECASE 忽略字母大小写 re.L LOCALE 影响 “w, “W, “b, 和 “B,这取决于当前的本地化设置. re.M MULTILINE 使用本标志后, ...

  6. 初学python之路-day12

    本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...

  7. form中的button默认提交事件

    <form action=""> <input autocomplete="off" type="text" name=& ...

  8. linux线程 join/detach

    linux中创建线程时,可以通过 __attr 指定线程的属性 extern int pthread_create (pthread_t *__thread, __const pthread_attr ...

  9. 运行maven命令的时候出现jre不正确

    出错详情: Unable to locate the Javac Compiler in: C:\Program Files\Java\jre1.6.0_07\..\lib\tools.jar Ple ...

  10. java ReentrantLock 公平锁 非公平锁 测试

    package reentrantlock; import java.util.ArrayList; import java.util.concurrent.locks.ReentrantLock; ...