【发布时间】:2014-11-14 05:31:53
【问题描述】:
我有一个由五个节点组成的 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
【问题讨论】:
-
你在每个节点的 elasticsearch.yml 文件中做了哪些明确的设置?这些节点是否在不同的机器上?你在日志中有什么可疑的地方吗?如果节点位于不同的机器上,您确定每个节点都知道其他节点吗?
-
每个设置都相同,我将在上面编辑我的帖子以包含它。所有节点都在单独的机器上。日志中没有任何可疑之处,这是我首先检查的地方。所有节点都知道其他节点。也就是说,我可以在没有数据的节点上进行查询,它通过从另一个节点获取数据返回有效结果,正如预期的那样。
-
我添加了this 回答我如何诊断这样的事情......基本上尝试手动路由其中一个分片,看看它为什么不会移动
标签: elasticsearch