zoukankan      html  css  js  c++  java
  • Elasticsearch节点下线(退役)and unassigned shards

    一、节点退役
    当集群中个别节点出现故障预警等情况,需要进行退役工作,即让所有位于该退役节点上的分片的数据分配到其他节点上后,再将此节点关闭并从集群中移除。

    1、ES提供了让某个节点上所有数据都移走的功能如下:

      ElasticSearch集群就会自动把这个节点上的所有分片,都自动转移到其他节点上,等到转移完成,这个空节点就可以毫无影响的下线。

    curl -XPUT 127.0.0.1:9200/_cluster/settings -d '{
    "transient" :{
    "cluster.routing.allocation.exclude._ip" : "10.0.0.1"
    }
    }'

    2、当shard都迁移走后,就可以将此机器上的ES进程关闭

    3、可以在管理页面上删除此节点的ES服务角

    二、在节点退役过程中遇到的坑

    退役search server 节点时,在页面上进行删除该节点后,replia不为0的index恢复过来,但是导致副本为0的index未能进行shard的分配,导致search始终是red状态。

    方式一:跟客户确认该未成功分配分片的索引有没有用,没用就直接删除即可。

    方式二:

    1、查看ES集群的健康状况

    curl -XGET http://localhost:9200/_cluster/health?pretty

    2、*****************************开始修复************************************

    2.1查找未分配的分配

    curl -s "http://localhost:9200/_cat/shards" | grep UNASSIGNED 

    2.3执行reroute(分多次,逐个修复 变更shard的值为UNASSIGNED查询结果中编号, 上一步查询结果是1 4)

    将没有成功分配的shard,进行手动迁移到目标节点:

    curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
    "commands" : [ {
    "allocate" : {
    "index" : "rs_wx_test",#unsigned 的索引
    "shard" : 1,#出现unsigned的切片编号
    "node" : "AfUyuXmGTESHXpwi4OExxx",#目标节点
    "allow_primary" : true
    }
    }
    ] }'

    方式三:增加节点数或者减少副本数:

    这里选择减少副本数为为例:

    curl -H "Content-Type: application/json" -XPUT 'localhost:9200/employee/_settings?pretty' -d '{
    "number_of_replicas": 1 #以前副本数为2的时候出现了shards unsigned,现将副本数设置为1,恢复正常
    }'    
  • 相关阅读:
    获取SqlServer2005表结构
    SQL SERVER 2005连接其它数据库并导入数据表
    vs2008安装失败问题
    Elmah使用方法
    使用postman发送请求,body为空
    docker的简单使用
    mongodb5最新版本的安装和向外暴露端口
    初探gin框架
    img图片的src指定为网络中随便找的图片链接,但是控制台报错get请求403
    父元素为flex布局时,设置最后一个子元素靠右,其他靠左
  • 原文地址:https://www.cnblogs.com/yfb918/p/10477204.html
Copyright © 2011-2022 走看看