当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch未正确分配碎片或副本

明安阳
2023-03-14

我正在运行一个2节点的elasticsearch集群,并将我的所有索引配置为2个主碎片和1个副本。起初,我认为每个节点将存储1个主碎片和1个副本,尽管这不是正在发生的事情。

 curl -XGET http://localhost:9200/_cat/shards
 .kibana                   0 p STARTED       1   3.1kb 10.151.6.98 Eleggua
 .kibana                   0 r UNASSIGNED
 logstash-sflow-2016.10.03 1 p STARTED     738 644.4kb 10.151.6.98 Eleggua
 logstash-sflow-2016.10.03 1 r UNASSIGNED
 logstash-sflow-2016.10.03 0 p STARTED     783 618.4kb 10.151.6.98 Eleggua
 logstash-sflow-2016.10.03 0 r UNASSIGNED
 logstash-ipf-2016.10.03   1 p STARTED    8480   3.9mb 10.151.6.98 Eleggua
 logstash-ipf-2016.10.03   1 r UNASSIGNED
 logstash-ipf-2016.10.03   0 p STARTED    8656   6.3mb 10.151.6.98 Eleggua
 logstash-ipf-2016.10.03   0 r UNASSIGNED
 logstash-raw-2016.10.03   1 p STARTED     254 177.9kb 10.151.6.98 Eleggua
 logstash-raw-2016.10.03   1 r UNASSIGNED
 logstash-raw-2016.10.03   0 p STARTED     274   180kb 10.151.6.98 Eleggua
 logstash-raw-2016.10.03   0 r UNASSIGNED
 logstash-pf-2016.10.03    1 p STARTED    4340   2.9mb 10.151.6.98 Eleggua
 logstash-pf-2016.10.03    1 r UNASSIGNED
 logstash-pf-2016.10.03    0 p STARTED    4234   5.7mb 10.151.6.98 Eleggua
 logstash-pf-2016.10.03    0 r UNASSIGNED

如上所示,每个碎片都由单个节点托管,没有分配副本。

curl -XGET 'http://127.0.0.1:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "es_gts_seginfo",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 9,
  "active_shards" : 9,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 9,
  "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" : 50.0
}

我做错了什么?

共有1个答案

干京
2023-03-14

多亏了你们,我才解决了这个问题。我的一个节点运行2.4.0,另一个运行2.4.1。这样重路由就无法正常工作。

curl -XPOST -d '{ "commands" : [ {
>   "allocate" : {
>        "index" : ".kibana",
>        "shard" : 0,
>        "node" : "proc-gts-elk01",
>        "allow_primary":true
>      }
>   } ] }' http://localhost:9200/_cluster/reroute?pretty
{
  "error" : {
    "root_cause" : [ {
      "type" : "illegal_argument_exception",
      "reason" : "[allocate] allocation of [.kibana][0] on node {proc-gts-elk01}{dhLrHPqTR0y9IkU_kFS5Cw}{10.151.6.19}{10.151.6.19:9300}{max_local_storage_nodes=1, hostname=proc-gts-elk01, data=yes, master=yes} is not allowed, reason: [YES(below shard recovery limit of [2])][YES(node passes include/exclude/require filters)][YES(primary is already active)][YES(enough disk for shard on node, free: [81.4gb])][YES(shard not primary or relocation disabled)][YES(shard is not allocated to same node or host)][YES(allocation disabling is ignored)][YES(total shard limit disabled: [index: -1, cluster: -1] <= 0)][YES(node meets awareness requirements)][YES(allocation disabling is ignored)][NO(target node version [2.4.0] is older than source node version [2.4.1])]"
    } ],
    "type" : "illegal_argument_exception",
    "reason" : "[allocate] allocation of [.kibana][0] on node {proc-gts-elk01}{dhLrHPqTR0y9IkU_kFS5Cw}{10.151.6.19}{10.151.6.19:9300}{max_local_storage_nodes=1, hostname=proc-gts-elk01, data=yes, master=yes} is not allowed, reason: [YES(below shard recovery limit of [2])][YES(node passes include/exclude/require filters)][YES(primary is already active)][YES(enough disk for shard on node, free: [81.4gb])][YES(shard not primary or relocation disabled)][YES(shard is not allocated to same node or host)][YES(allocation disabling is ignored)][YES(total shard limit disabled: [index: -1, cluster: -1] <= 0)][YES(node meets awareness requirements)][YES(allocation disabling is ignored)][NO(target node version [2.4.0] is older than source node version [2.4.1])]"
  },
  "status" : 400
}
 类似资料:
  • 问题内容: 我有一个具有4个节点的ES集群: 我不得不重新启动search03,当它回来时,它又重新加入了群集,没有问题,但是留下了7个未分配的碎片。 现在,我的集群处于黄色状态。解决此问题的最佳方法是什么? 删除(取消)分片? 将分片移动到另一个节点? 将分片分配给节点? 将“ number_of_replicas”更新为2? 还有其他东西吗? 有趣的是,当添加新索引时,该节点开始在该节点上工作

  • centOS上的elasticsearch 1.7.x 我们的三节点集群变成了两节点集群。一切都很好。每个碎片我们都有3个复制品,所以我们都有了。 但现在集群运行状况是黄色的,我们有: 我们已经将ElasticSearch.yml中的副本计数设置更改为1(从2)并在两个节点上重新启动ES。这没有什么区别。 下一步是什么? 我看到了如何重新分配碎片,但没有看到如何消除未分配的碎片。

  • 我有一个包含4个节点的ES集群: 我不得不重新启动search03,当它回来时,它没有问题地重新加入了集群,但是留下了7个未分配的碎片。 现在我的集群处于黄色状态。解决这个问题最好的办法是什么? 删除(取消)碎片? 将碎片移动到另一个节点? 将碎片分配给节点? 将“number_of_replicas”更新为2? 完全是其他吗? 有趣的是,当添加了一个新的索引时,该节点开始处理它,并与集群的其余部

  • 我试图理解什么是碎片和副本在Elasticsearch中,但我没有设法理解它。如果我下载Elasticsearch并运行脚本,那么根据我所知,我已经启动了一个具有单个节点的集群。现在这个节点(我的PC)有5个碎片(?)还有一些复制品(?)。 它们是什么,我有5个重复的索引吗?如果是,为什么?我需要一些解释。

  • 我在低源硬件配置的机器上得到了1个节点、1个碎片、1个副本体系结构。我必须将Elasticsearch堆大小保持在总内存的20%,并且我索引1K~1M文档到Elasticsearch关于硬件配置。我有不同类型机器,从2GB到16GB,但由于它们是32bit体系结构,我只能使用300M到1.5GB的最大内存作为堆大小。 由于某些原因,我不知道为什么,Elasticsearch创建了一些带有未分配碎片

  • 我收到警报说elasticsearch有两个未分配碎片。我进行了以下api调用以收集更多细节。 以下输出 我查询了断路器配置 并且可以看到3个节点(elasticsearch-data-0、elasticsearch-data-1和elasticsearch-data-2)的父limit_size_in_byes如下所示。 我参考了这个答案https://stackoverflow.com/A/6