1.解决分片unassigned的问题
本篇博客在es的javaApi操作上来的
使用head插件查看javaApi操作插入的数据是出现分片问题的情况,如图:
查看集群健康状态:curl -XGET http://192.168.203.128:9200/_cluster/health\?pretty
查看所有分片的状态:curl -XGET http://192.168.203.128:9200/_cat/shards
只显示未分配的节点:curl -s "http://192.168.203.128:9200/_cat/shards" | grep UNASSIGNED
查看节点为master的节点唯一标识:curl '192.168.203.128:9200/_nodes/process?pretty'
开始逐片修复:
逐个修复每一个节点分片数据, 改:index、shard、node
curl -XPOST '192.168.203.128:9200/_cluster/reroute' -d '{
"commands": [
{
" allocate_replica ": {
"index": "user_info",
"shard": 0,
"node": "2Yk8bN5OQkmiRrSNhADxMg",
"allow_primary": true
}
}
]
}'
以上方法搜无法修复,查看原因:
一个节点副分片失败的原因是因为ik分词器的原因,
那么查看分词器插件是否正确分词:
http://192.168.203.128:9200/news/_analyze?pretty&analyzer=ik_max_word&text=中华人民共和国
说明node1节点分词正确
这样并不能看出问题来
挨着每台机器检车分词插件的加载情况:
node3就出事了,没有加载分词插件
然后发现node3分词器都没有装
我不是群发了吗?难道少发了这一台???
安装上吧
集群恢复: