首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新增节点未分配elasticsearch分片

新增节点未分配elasticsearch分片
EN

Stack Overflow用户
提问于 2016-11-12 19:23:55
回答 2查看 697关注 0票数 1

在我的ES集群中,我有10个分片和2个副本,其中有5个节点。我刚刚向集群中添加了一个新节点,它已与集群同步。状态为绿色,根据集群API,我们现在在集群中有6个活动数据节点。但当我检查‘’http://localhost:9200/_cat/shards‘时,没有将分片分配给这个节点。因此,不会将弹性查询定向到这个新添加的节点。此节点的日志文件没有任何特殊之处:

代码语言:javascript
复制
[2016-11-12 14:39:21,114][INFO ][node                     ] [xxx] initializing ...
[2016-11-12 14:39:22,801][INFO ][plugins                  ] [xxx] modules [reindex, lang-expression, lang-groovy], plugins [], sites []
[2016-11-12 14:39:22,843][INFO ][env                      ] [Chak] using [1] data paths, mounts [[/ (/dev/sda1)]], net usable_space [531gb], net total_space [879.9gb], spins? [no], types [ext4]
[2016-11-12 14:39:22,843][INFO ][env                      ] [xxx] heap size [989.8mb], compressed ordinary object pointers [true]
[2016-11-12 14:39:22,844][WARN ][env                      ] [xxx] max file descriptors [65535] for elasticsearch process likely too low, consider increasing to at least [65536]
[2016-11-12 14:39:31,375][INFO ][node                     ] [xxx] initialized
[2016-11-12 14:39:31,377][INFO ][node                     ] [xxx] starting ...
[2016-11-12 14:39:32,616][INFO ][transport                ] [xxx] publish_address {192.168.200.8:9300}, bound_addresses {192.168.200.8:9300}
[2016-11-12 14:39:32,637][INFO ][discovery                ] [xxx] divar_elastic/GwfnlWtzTDGv42bZA2PcMA
[2016-11-12 14:39:36,042][INFO ][cluster.service          ] [xxx] detected_master {xxx}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302}, added {{xxx}{TAgbh6SmShKCPEPBtUXyXw}{192.168.200.3}{192.168.200.3:9300},{xxx}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302},{xxx}{C_b3gDlpTfu1zt0RdDlckw}{192.168.200.13}{192.168.200.13:9300},{xxx}{lYOnZzFPTiuJr7JoMNfK5g}{192.168.200.4}{192.168.200.4:9300},{xxx}{BSzFHsAMRyq8cqMh22GSKg}{192.168.200.11}{192.168.200.11:9300},}, reason: zen-disco-receive(from master [{Nar}{907DRgSbTv2T-dcDOwPfSw}{192.168.200.7}{192.168.200.7:9302}])
[2016-11-12 14:39:36,143][INFO ][cluster.routing.allocation.decider] [Foo] updating [cluster.routing.allocation.disk.watermark.low] to [93%]
[2016-11-12 14:39:36,143][INFO ][cluster.routing.allocation.decider] [Foo] updating [cluster.routing.allocation.disk.watermark.high] to [97%]
[2016-11-12 14:39:37,661][INFO ][http                     ] [xxx] publish_address {192.168.200.8:9200}, bound_addresses {192.168.200.8:9200}
[2016-11-12 14:39:37,664][INFO ][node                     ] [xxx] started

对如何解决这个问题有什么特别的意见吗?

EN

回答 2

Stack Overflow用户

发布于 2016-11-13 01:23:34

这可能有几个可能的原因。

  1. 当节点离开集群或加入主节点时,会暂时延迟分片重新分配,以避免不必要的资源浪费在重新均衡分片上。检查您的延迟超时。

curl -XPUT 'localhost:9200/<INDEX_NAME>/_settings' -d ' { "settings": { "index.unassigned.node_left.delayed_timeout": "30s" } }

  • You需要检查分片分配是否设置为false。重新启用分片重新分配。

curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "all" } }'

如果以上都是好的,那么您需要检查主日志,了解为什么它没有向节点提供任何数据。在最坏的情况下,您可能需要重新启动集群,您可以一次滚动停止和启动一个节点。

票数 0
EN

Stack Overflow用户

发布于 2016-11-13 05:57:53

Elasticsearch不会在您添加新节点时触发数据的重新平衡。实际上,您并不希望它这样做,因为这可能会使您的网络饱和,并在集群需要专注于索引文档和回答查询时给集群带来压力。

您可以通过_cluster/reroute接口(https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-reroute.html)手动将分片移至新节点

另一种选择(也是我倾向于用来做这类事情的)是,你可以对基于磁盘的水印(如https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html)应用一个瞬态设置。如果您查看/_cat/allocation?v并注意到您的旧节点的磁盘利用率为(比方说) 60%,您可以将高水位线设置降低到大约55%,以便较旧的节点开始将其数据发送到不占用磁盘空间的较新节点。如果执行此操作,请确保在ES移动数据后重置瞬态设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40562354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档