elasticsearch分片unassign问题处理

这篇具有很好参考价值的文章主要介绍了elasticsearch分片unassign问题处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、查询集群状态(当前为yellow)

curl -s http://localhost:8008/_cat/health?v

2、查询分片情况

curl -s http://localhost:8008/_cat/shards |grep -i unassign

看到有四个分片是 unassign,目前都是副本分区,不是主分区

item_sold_v5 5 r UNASSIGNED
item_sold_v5 4 r UNASSIGNED
item_v5 7 r UNASSIGNED
item_v5 5 r UNASSIGNED

3、查看unassign原因 (参考 elasticsearch官网 cart-shards )

curl -s curl -s http://localhost:8008/_cat/shards?h=index,shard,prirep,state,unassigned.reason

看到是因为 NODE_LEFT

elasticsearch分片unassign问题处理

4、检查有问题的shard和node对应关系

curl -s http://localhost:8008/_cat/shards|grep item_v5 | awk '{print $NF}'|sort -k1|uniq -c

发现没有 lijun_2 该节点

5、检查集群node信息

curl -s http://localhost:8008/_cat/nodes |grep lijun_2

发现 lijun_2 节点是存在的,但是unassign提示 node left ,尝试重启该节点看是否会自动重新分配。重启之后发现没有重新自动分配

6、检查配置项 cluster.routing.allocation.enable (配置项值说明参考 https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#cluster-shard-allocation-settings)

curl -s http://localhost:8008/_cluster/settings?include_defaults&flat_settings' |python -m json.tool | grep cluster.routing.allocation.enable

发现临时和永久配置项中都是none值

elasticsearch分片unassign问题处理

为了保险起见还是不动历史的配置,采用手动分配

7、手动对unassign分配执行allocation操作

这里需要注意,一定要参考当前环境中es版本对应的文档(https://www.elastic.co/guide/en/elasticsearch/reference/6.4/cluster-reroute.html),网上很多教程给的案例是不合适的,一定要看对应版本的官网文档

curl -X POST -H 'Content-Type:application/json' 'http://localhost:8008/_cluster/reroute' -d '{
  "commands" : [{
    "allocate_replica" : {
      "index" : "item_sold_v5",
      "shard" : 4,
      "node" : "MeV-nUBdTamtutzr52vmew"
    }
  }]
}'

commands中 allocate_replica说明

Allocate an unassigned replica shard to a node. Accepts index and shard for index name and shard number, and node to allocate the shard to。

  • 故这里使用的 lijun_2 节点;重复对有问题的其他三个shard执行如上操作。
  • 如果shard 数据很小,会很快从 unassign 到 STARTED,
  • 如果数据量较多,过程会有 INITIALIZING 的状态,等待最终完成变成 STARTED。

附加:

1、查看集群es使用的版本 (当前版本为6.4.3)

curl -s http://localhost:8008

elasticsearch分片unassign问题处理

2、查看节点的ID

curl -s http://localhost:8008/_nodes/process?pretty

3、集群维度查看 索引和shard的详细文章来源地址https://www.toymoban.com/news/detail-487483.html

curl -s http://localhost:8008/_cluster/health?level=indices | python -m json.tool

curl -s http://localhost:8008/_cluster/health?level=shards | python -m json.tool

到了这里,关于elasticsearch分片unassign问题处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch的集群负载均衡与分片分片

    Elasticsearch是一个分布式、实时的搜索和分析引擎,它可以处理大量数据并提供快速、准确的搜索结果。在大规模应用中,Elasticsearch的性能和可用性是关键因素。为了确保高性能和高可用性,Elasticsearch需要实现集群负载均衡和分片分片。 在本文中,我们将深入探讨Elasticsear

    2024年04月25日
    浏览(43)
  • Elasticsearch查询分片信息

    2024年02月15日
    浏览(46)
  • Elasticsearch集群许可证过期问题处理

    当你执行索引相关操作有如下报错: 这就提示你许可证过期需要重新申请。 步骤如下: 1. 登录注册 Register | Elastic https://license.elastic.co/registration  注册成功!邮件会收到下载链接。   2. 点击下载与ES对应的版本 查看ES版本:curl http://172.16.18.140:9200 3. 将下载好的许可证文件上

    2024年02月02日
    浏览(57)
  • ElasticSearch的集群、节点、索引、分片和副本

    Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,我们将Elasticsearch里存储文档数据和关系型数据库MySQL存储数据的概念进行一个类比 ES里的Index可以看做一个库,而Types相当于表,Documents则相当于表的行。 这里Types的概念已经被逐渐弱化,E

    2024年02月02日
    浏览(104)
  • ES命令行查询es集群的状态、分片、索引

    查看es集群状态 查看es分片信息 查看es索引 查看ES索引 本文参考:https://www.cnblogs.com/expiator/p/14847705.html

    2024年02月12日
    浏览(53)
  • 解决elasticsearch集群分片lock锁无法分配

    报错内容如下所示 出现这个问题的原因是原有分片未正常关闭或者清理,所以当分片要重新分配回出问题节点时就会没办法获取分片锁,这不会导致数据丢失,只需要重新出发一下分配分片的操作即可

    2024年02月11日
    浏览(99)
  • Elasticsearch 的节点、集群、分片和副本 全面解析

    节点是 Elasticsearch 实例的运行实例,即一个独立的 Elasticsearch 服务进程。每个节点都是一个独立的工作单元,负责存储数据、参与数据处理(如索引、搜索、聚合等)以及参与集群的协调工作。节点可以在物理或虚拟机上单独部署,也可以在同一台机器上运行多个节点(但需

    2024年04月27日
    浏览(39)
  • elasticsearch7.x 集群的搭建和分片设置

    目录   一、es集群的基本核心概念 二、es集群搭建 三、es集群索引分片管理 3.1创建索引,指定分片  3.2索引分片的分配 3.2.1 手动移动分片:  3.2.1 修改副分片数量 Cluster 集群: 一个 Elasticsearch 集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为 标识。

    2023年04月25日
    浏览(51)
  • elasticSearch核心概念的介绍(十四):ES集群索引分片管理

    上一章节我们对ES的集群进行了搭建,有兴趣的朋友可以参考一下elasticSearch核心概念的介绍(十三):docker搭建ES集群 这里我们来介绍了ES集群索引的分片管理 ES集群索引分片管理 介绍 分片(shard):因为ES是个分布式的搜索引擎,所以索引通常都会分解成不同部分,而这些

    2023年04月27日
    浏览(56)
  • Elasticsearch集群搭建、数据分片以及位置坐标实现附近的人搜索

    es使用两种不同的方式来发现对方: 广播 单播 也可以同时使用两者,但默认的广播,单播需要已知节点列表来完成 当es实例启动的时候,它发送了广播的ping请求到地址 224.2.2.4:54328 。而其他的es实例使用同样的集群名称响应了这个请求。 一般这个默认的集群名称就是上面的

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包