单点es插入数据后,es状态变为yellow
安装过程
安装步骤可按链接内容进行部署
https://showdoc.chinamcloud.com/web/#/1082?page_id=29661
启动的es的时候报错如下
在安装前我也检查了我的jdk是1.8.310
并且配置了环境变量
但是还是很奇怪 重启了几次es都起不来,然后我就怀疑是我的jdk有问题,因此我换了一个repo源 ,重新yum安装了一个jdk1.8.0_131,然后起来了。
es插入数据后,es状态变成yellow
我在测试插入数据后
查看es状态
curl localhost:9200/_cluster/heatlth?pretty
返回结果如下:
{
“cluster_name” : “*******”,
“status” : “yellow”,
“timed_out” : false,
“number_of_nodes” : *******,
“number_of_data_nodes” : *******,
“active_primary_shards” : *******,
“active_shards” : *******,
“relocating_shards” : *******,
“initializing_shards” : *******,
“unassigned_shards” : 5, ###重点关注这里
“delayed_unassigned_shards” : *******,
“number_of_pending_tasks” : *******,
“number_of_in_flight_fetch” : *******,
“task_max_waiting_in_queue_millis” : *******,
“active_shards_percent_as_number” : *******
}
重点关注unassigned_shards参数
有未分配的分片有5个
接着使用命令查看异常的索引:
curl localhost:9200/_cat/indices?v
或者在kibana里用
GET _cat/indices?v
返回的索引找到yellow状态的,并查看它的原因
# 查看异常原因
GET /_cluster/allocation/explain
“explanation” : "the shard cannot be allocated to the same node on which a copy of the shard already exists [[]][0], node[FkwTKuMISlG88uNtelHQbQ], [P], s[STARTED], a[id=l_k948LiTcSqjhp8PRKqVQ]]”
}
这个报错我也在网上找了下,原因是es有个机制:
当副本数大于数据节点数时,那么每个分片只能最多有节点数量-1个副本,无法分配的副本数则为主分片数*(副本数-(节点数-1))
举个例子:假设节点数为3,主分片数为5,副本数为3,那么无法分配的副本数则为:5*(3-(3-1))=5
那我就尝试设置一下分片的副本数,因为是单点es配置,所以我就将其设置为0
PUT 索引名/_settings
{
"number_of_replicas" : 0
}
接着查看集群状态,成功恢复到green状态!!