elasticsearch如何安全重启

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介:

elasticsearch如何安全重启节点

问题:

elasticsearch集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级。但是业务不能停,如果直接kill掉节 点,可能导致数据丢失。而且集群会认为该节点挂掉了,就开始转移数据,当重启之后,它又会恢复数据,如果你当前的数据量已经很大了,这是很耗费机器和网络 资源的。

stackoverflow的问题上说得更准确:

I have an ES cluster with 4 nodes:

number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true

I had to restart search03, and when it came back, it rejoined the cluster no problem, but left 7 unassigned shards laying about.

{
  "cluster_name" : "tweedle",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 4,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 15,
  "active_shards" : 23,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 7
}

说的就是说shard 表现出来的征兆是出现unassigned,然后开始初始化,rebalance数据,然后就是大量的等待。

解决方案就是:rolling restart


本文转载官方提供的安全重启集群节点的方法:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_rolling_restarts.html

滚动重启

总有一天你会需要做一次集群的滚动重启——保持集群在线和可操作,但是逐一把节点下线。

常见的原因:Elasticsearch 版本升级,或者服务器自身的一些维护操作(比如操作系统升级或者硬件相关)。不管哪种情况,都要有一种特别的方法来完成一次滚动重启。

正常情况下,Elasticsearch 希望你的数据被完全的复制和均衡的分布。如果你手动关闭了一个节点,集群会立刻发现节点的丢失并开始再平衡。如果节点的维护是短期工作的话,这一点就很烦人了,因为大型分片的再平衡需要花费相当的时间(想想尝试复制 1TB 的数据——即便在高速网络上也是不一般的事情了)。

我们需要的是,告诉 Elasticsearch 推迟再平衡,因为对外部因子影响下的集群状态,我们自己更了解。操作流程如下:

  1. 可能的话,停止索引新的数据。虽然不是每次都能真的做到,但是这一步可以帮助提高恢复速度。
  2. 禁止分片分配。这一步阻止 Elasticsearch 再平衡缺失的分片,直到你告诉它可以进行了。如果你知道维护窗口会很短,这个主意棒极了。你可以像下面这样禁止分配:

    PUT /_cluster/settings
    {
        "transient" : {
            "cluster.routing.allocation.enable" : "none"
        }
    }
  3. 关闭单个节点。
  4. 执行维护/升级。
  5. 重启节点,然后确认它加入到集群了。
  6. 用如下命令重启分片分配:

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

    分片再平衡会花一些时间。一直等到集群变成 绿色 状态后再继续。

  7. 重复第 2 到 6 步操作剩余节点。
  8. 到这步你可以安全的恢复索引了(如果你之前停止了的话),不过等待集群完全均衡后再恢复索引,也会有助于提高处理速度。

















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7458374.html ,如需转载请自行联系原作者






相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
7月前
|
安全 大数据 Java
elasticsearch|大数据|低版本的elasticsearch集群的官方安全插件x-pack的详解
elasticsearch|大数据|低版本的elasticsearch集群的官方安全插件x-pack的详解
159 0
|
5月前
|
存储 安全 文件存储
【elasticsearch】es6重启服务后数据消失,es6如何配置数据持久化储存
【elasticsearch】es6重启服务后数据消失,es6如何配置数据持久化储存
70 1
|
7月前
|
安全 Java 大数据
elasticsearch|大数据|elasticsearch低版本集群的部署安装和安全增强---密码设置问题
elasticsearch|大数据|elasticsearch低版本集群的部署安装和安全增强---密码设置问题
85 0
|
Kubernetes 索引 容器
elasticsearch重启过程
elasticsearch重启过程
469 0
|
存储 运维 监控
大数据数据存储的搜索引擎Elasticsearch的集群运维的集群安全
Elasticsearch是一个可扩展的搜索引擎,可以在同一个集群中部署多个Elasticsearch节点,以提高性能和可用性。
94 0
|
安全
禁用Kibana安全提示(Elasticsearch built-in security features are not enabled)
禁用Kibana安全提示(Elasticsearch built-in security features are not enabled)
318 0
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数
90 0
|
监控 安全 数据安全/隐私保护
《Elastic(中国)基础开发宝典》——集群安全配置功能大升级,单机模拟运行 Elasticsearch 8.1.2 三节点集群
《Elastic(中国)基础开发宝典》——集群安全配置功能大升级,单机模拟运行 Elasticsearch 8.1.2 三节点集群
|
JSON 安全 Java
Docker操作Elasticsearch和Kibana增加用户密码安全验证
昨天公司说现场生产的机器ES和Kibana没有增加密码等安全验证,我想这不是最基础的嘛,怎么连密码都没有,赶紧围绕着生产环境自己写了一个方案,马上让现场人员进行部署,具体的操作流程如下:
2944 0
Docker操作Elasticsearch和Kibana增加用户密码安全验证
|
安全 网络协议 API
Elasticsearch Security集群安全策略配置
Elasticsearch Security集群安全策略配置