elasticsearch分片报错Unassigned

贴一下错误信息:

一、设置副分片

1.查询索引设置:发现副本数为2,直接设置为0

product/_settings

2.设置副本数为0

PUT参数: 

{"number_of_replicas":0}

 3.此时在看集群节点状态

此时他会自动分配到其他节点,如果一直没有分配到其他节点,那就是其他节点有错误信息,没同步成功,我这里就一直没成功,发现是应为ik分词器报错,所以在子节点安装了ik分词器以后重启节点即可。

成功的截图(我后来又将副分片设置成一就好了,设置成2仍然会出现3个未分配分片,应该和节点数量有关。可以尝试加节点或者减少副分片):

 

二、命令行强制分配分片

1.查看集群健康状态:

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

图中显示有6个分片未分配节点 

2.查看未分配分片状态

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

 3.查看节点为master的节点唯一标识

curl 'localhost:9200/_nodes/process?pretty'

4.执行reroute

curl -H "Content-Type: application/json" -XPOST 'localhost:9200/_cluster/reroute' -d '{
    "commands" : [ 
        {
            "allocate_replica" : {
                "index" : "product",
                "shard" : 0,
                "node" : "master"
             }
        }
    ] 
}'

index:需要修复的索引的名字product

shard:shard的编号,图中可以看出0,1,2

node:master节点名字

备注:我在执行该命令的时候报错:

看到上面有说ik分词器,才想起来master上面的product使用了ik分词器,从节点没有安装,所以无法成功强制分片。此时需要将从节点也安装ik分词器。 一定要重启!!!!!!

检验ik分词器是否安装:

post执行: _analyze

参数:{"text":"中华人民共和国人民大会堂","analyzer":"ik_max_word"}

正确结果返回如图:

 

参考:https://blog.csdn.net/wer724853863/article/details/78533105

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值