在我的ES集群中,我有10个分片和2个副本,其中有5个节点。我刚刚向集群中添加了一个新节点,它已与集群同步。状态为绿色,根据集群API,我们现在在集群中有6个活动数据节点。但当我检查‘’http://localhost:9200/_cat/shards‘时,没有将分片分配给这个节点。因此,不会将弹性查询定向到这个新添加的节点。此节点的日志文件没有任何特殊之处:
[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对如何解决这个问题有什么特别的意见吗?
发布于 2016-11-13 01:23:34
这可能有几个可能的原因。
curl -XPUT 'localhost:9200/<INDEX_NAME>/_settings' -d ' { "settings": { "index.unassigned.node_left.delayed_timeout": "30s" } }
curl -XPUT 'localhost:9200/_cluster/settings' -d '{ "transient": { "cluster.routing.allocation.enable" : "all" } }'
如果以上都是好的,那么您需要检查主日志,了解为什么它没有向节点提供任何数据。在最坏的情况下,您可能需要重新启动集群,您可以一次滚动停止和启动一个节点。
发布于 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移动数据后重置瞬态设置。
https://stackoverflow.com/questions/40562354
复制相似问题