我有一个包含五个节点的Elasticsearch集群。我在每个集合上的配置相同,每个索引有5个分片和4个副本。我们的想法是每个节点都有每个分片。
我的四个节点有五个分片。一个节点的所有主节点都是主节点。一个节点没有。然后,当然,我有5个未分配的分片。
我每天都会重新加载一个新索引,这正是它每次都分配分片的方式。
这里的目标是弄清楚为什么一个节点什么也得不到。那太糟糕了。
我很容易问为什么会这样 - 如果有人知道,那就太棒了。但是,由于我似乎无法在网上找到任何内容或在文档中解释这一点,我可能会问,我可能会如何诊断它?有线索吗?我能在这里找到任何线索吗?
编辑添加 - 这是我的配置。每台机器都是这样的(当然除了机器名称和发现之外):
#
# Server-specific settings for cluster domainiq-es
#
cluster.name: domainiq-es
node.name: "Mesa-01"
discovery.zen.ping.unicast.hosts: ["m1plfinddev03.prod.mesa1.gdg", "m1plfinddev04.prod.mesa1.gdg", "p3plfinddev03.prod.phx3.gdg", "p3plfinddev04.prod.phx3.gdg"]
#
# The following configuration items should be the same for all ES servers
#
node.master: true
node.data: true
index.number_of_shards: 5
index.number_of_replicas: 4
index.store.type: mmapfs
index.memory.index_buffer_size: 30%
index.translog.flush_threshold_ops: 25000
index.refresh_interval: 30s
bootstrap.mlockall: true
gateway.recover_after_nodes: 4
gateway.recover_after_time: 2m
gateway.expected_nodes: 5
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping.timeout: 10s
discovery.zen.ping.retries: 3
discovery.zen.ping.interval: 15s
discovery.zen.ping.multicast.enabled: false
index.search.slowlog.threshold.query.warn: 500ms
index.search.slowlog.threshold.query.info: 200ms
index.search.slowlog.threshold.query.debug: 199ms
index.search.slowlog.threshold.query.trace: 198ms
index.search.slowlog.threshold.fetch.warn: 1s
index.search.slowlog.threshold.fetch.info: 800ms
index.search.slowlog.threshold.fetch.debug: 500ms
index.search.slowlog.threshold.fetch.trace: 200ms
index.indexing.slowlog.threshold.index.warn: 10s
index.indexing.slowlog.threshold.index.info: 5s
index.indexing.slowlog.threshold.index.debug: 2s
index.indexing.slowlog.threshold.index.trace: 500ms
答案 0 :(得分:1)
感谢Alcanzar,在上面的评论中,我确实认为这里的问题是他看到的 - 不同的版本。不接受分片的节点比其他节点早运行一个版本。
本周末我将把所有内容升级到1.4,很可能会看到这种情况消失。现在有了充分的理解。