Elasticsearch 健康状态处理

笔者在自己的 ubuntu 服务器上使用 GET /_cat/health?v 命令时,返回值如下所示

此处输入图片的描述

可以看到集群状态为 yellow,这是什么意思呢?原来在 es 的集群状态中,有三种情况,官网描述如下。

  • RED: Some or all of (primary) shards are not ready.

  • YELLOW: Elasticsearch has allocated all of the primary shards, but some/all of the replicas have not been allocated.

  • GREEN: Great. Your cluster is fully operational. Elasticsearch is able to allocate all shards and replicas to machines within the cluster.

由此可知,我们的分片副本还没有被分配到某个节点上。这是因为笔者目前的 es 集群由单节点组成,副本集没有足够的节点容纳它。解决办法也非常简单,由于笔者最近都是单机演示,这里也给出单机的解决方案(然并卵)。

笔者的 es 实例文件夹放在 elasticsearch\elasticsearch-5.2.2 文件夹下,将其复制一份为 elasticsearch\elasticsearch-5.2.2_node 放在同个文件夹下,然后按照正常步骤启动即可。再次使用 GET /_cat/health?v 查看时,便会返回一下内容

{
  "cluster_name": "elasticsearch",
  "status": "green",
  "timed_out": false,
  "number_of_nodes": 2,
  "number_of_data_nodes": 2,
  "active_primary_shards": 6,
  "active_shards": 12,
  "relocating_shards": 0,
  "initializing_shards": 0,
  "unassigned_shards": 0,
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks": 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 100
}
posted @ 2017-03-26 16:40  白细胞  阅读(1390)  评论(0编辑  收藏  举报