最近公司新业务需要ES,最近在使用es的时候就出现了问题了,分布节点出现 Unassigned,纠结了半天,查阅官方和其他资料给出的几种情况作了下总结.这边用的kibana命令
一.可能存在未作分片的片
①:GET /_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED
查询出来的结果
如上图可以看见,.kibana中有个片分配出现了问题
②:使用GET _cluster/allocation/explain?pretty 查看详细错误
③:原来本地的副本数就只有1个,我们在索引映射的时候
把它指定了副本数为5个,我们可以全局设置为当前有效的副本数
PUT _settings
{
"number_of_replicas":0
}
问题就解决了,(我这边用单机做的一个示例,这里number_of_replicas是自己有效数量就好了)
二:节点分片不及时当一个节点离开集群的时候,主节点会将碎片重新分配,默认的是在1分钟内分配,这个时间节点会出现,我们可以缩短这个时间
①:日志中可以发现:
[TIMESTAMP][INFO][cluster.routing] [MASTER NODE NAME] delaying allocation for [54] unassigned shards, next check in [1m]
②:直接上命令简单粗暴解决,
"index.unassigned.node_left.delayed_timeout": "30s"
当然了,还有其他,如果是集群的话,版本不匹配也会出现,或者磁盘不够啊...