--- title: "Node currentNodes getLocalNode not master for join request – 如何解决此 Elasticsearch 异常" date: 2026-03-12 lastmod: 2026-03-12 description: "当 Elasticsearch 集群中的节点尝试加入但当前节点不是主节点时,会报出此错误。通常由网络问题、配置错误或脑裂场景导致。" tags: ["节点加入", "主节点", "集群状态"] summary: "版本: 6.8-8.9 简而言之,当 Elasticsearch 集群中的节点尝试加入,但当前节点不是主节点时,就会发生此错误。这可能是由于网络问题、配置不正确或脑裂场景导致的。要解决此问题,请确保节点之间的网络连接稳定。检查集群设置并确保指定了正确的主节点。此外,考虑启用 ‘discovery.zen.minimum_master_nodes’ 设置以防止脑裂情况。 日志上下文 # 日志 “Node [” + currentNodes.getLocalNode() + “] not master for join request” 类名是 NodeJoinExecutor.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: } else if (currentNodes.isLocalNodeElectedMaster()) { assert initialState.term() == term : "term should be stable for the same master"; newState = ClusterState.builder(initialState); } else { logger.trace("processing node joins; but we are not the master. current master: {}"; currentNodes.getMasterNode()); throw new NotMasterException("Node [" + currentNodes." --- > **版本:** 6.8-8.9 简而言之,当 Elasticsearch 集群中的节点尝试加入,但当前节点不是主节点时,就会发生此错误。这可能是由于网络问题、配置不正确或脑裂场景导致的。要解决此问题,请确保节点之间的网络连接稳定。检查集群设置并确保指定了正确的主节点。此外,考虑启用 'discovery.zen.minimum_master_nodes' 设置以防止脑裂情况。 日志上下文 ----------- 日志 "Node [" + currentNodes.getLocalNode() + "] not master for join request" 类名是 [NodeJoinExecutor.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用: ```java } else if (currentNodes.isLocalNodeElectedMaster()) { assert initialState.term() == term : "term should be stable for the same master"; newState = ClusterState.builder(initialState); } else { logger.trace("processing node joins; but we are not the master. current master: {}"; currentNodes.getMasterNode()); throw new NotMasterException("Node [" + currentNodes.getLocalNode() + "] not master for join request"); } DiscoveryNodes.Builder nodesBuilder = DiscoveryNodes.builder(newState.nodes()); MaptransportVersions = new HashMap<>(newState.transportVersions()); ```