elasticsearch = 无法分配,因为不允许分配给任何节点

Sex*_*yMF 10 elasticsearch

我将 Elasticsearch 作为单节点集群。
其中一项索引为黄色,解释如下。
我已经阅读了这里的所有材料,总的来说,我没有找到这个问题的解决方案。这是索引信息:
yellow open research-pdl 8_TrwZieRM6oBes8sGBUWg 1 1 416656058 0 77.9gb 77.9gb

这个命令POST _cluster/reroute?retry_failed似乎没有做任何事情。

安装程序在 docker 上运行,我有 650GB 可用空间。

{
  "index" : "research-pdl",
  "shard" : 0,
  "primary" : false,
  "current_state" : "unassigned",
  "unassigned_info" : {
    "reason" : "CLUSTER_RECOVERED",
    "at" : "2020-12-16T05:21:19.977Z",
    "last_allocation_status" : "no_attempt"
  },
  "can_allocate" : "no",
  "allocate_explanation" : "cannot allocate because allocation is not permitted to any of the nodes",
  "node_allocation_decisions" : [
    {
      "node_id" : "5zzXP2kCQ9eDI0U6WY4j9Q",
      "node_name" : "37f65704d9bb",
      "transport_address" : "172.19.0.2:9300",
      "node_attributes" : {
        "ml.machine_memory" : "67555622912",
        "xpack.installed" : "true",
        "transform.node" : "true",
        "ml.max_open_jobs" : "20"
      },
      "node_decision" : "no",
      "deciders" : [
        {
          "decider" : "same_shard",
          "decision" : "NO",
          "explanation" : "a copy of this shard is already allocated to this node [[research-pdl][0], node[5zzXP2kCQ9eDI0U6WY4j9Q], [P], s[STARTED], a[id=J7IX30jBSP2jXl5-IGp0BQ]]"
        }
      ]
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

谢谢

Ami*_*wal 9

异常消息非常明确,出于高可用性原因,Elasticsearch 永远不会在同一节点上分配同一主分片的副本。

该分片的副本已分配给该节点 [[research-pdl][0], node[5zzXP2kCQ9eDI0U6WY4j9Q], [P], s[STARTED], a[id=J7IX30jBSP2jXl5-IGp0BQ]]

由于您有一个单节点集群,因此您不会有另一个可以分配副本的其他节点。

解决方案

  1. 向集群添加更多节点,以便可以在其他节点上分配副本。(首选方式)
  2. 将副本分片减少到 0,这可能会导致数据丢失和性能问题。(如果有的话,您无法选择添加数据节点并且您希望集群处于绿色状态)。

您可以使用集群更新 API更新副本计数。

  • 谢谢。是否有可能我还有其他索引,但由于使用单节点数据库而突然消失了?我面临着指数总损失的问题。谢谢 (2认同)
  • 添加另一个节点是指同一服务器上的 docker-machine 吗?或具有弹性的新虚拟服务器。谢谢 (2认同)