版本: 8.3-8.7
简要来说,当 Elasticsearch 集群中原本作为主节点(master)的节点不再担任该角色时,就会发生此错误。这可能是由于网络问题、资源限制或配置问题导致的。要解决此问题,您可以检查集群健康状况和日志,以识别任何网络或资源问题。如果存在配置问题,请确保 ‘discovery.zen.minimum_master_nodes’ 设置配置正确。此外,如果网络延迟较高,请考虑增加 ‘discovery.zen.ping_timeout’ 的值。最后,确保集群中有足够数量的符合主节点条件的节点。
日志上下文 #
日志 “no longer master; failing [” + t.source() + “]” 的类名是 MasterService.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:
logger.debug("executing cluster state update for [{}]", summary);
final ClusterState previousClusterState = state();
if (previousClusterState.nodes().isLocalNodeElectedMaster() == false && executor.runOnlyOnMaster()) {
logger.debug("failing [{}]: local node is no longer master", summary);
updateTasks.forEach(t -> t.onFailure(new NotMasterException("no longer master; failing [" + t.source() + "]", () -> {})));
return;
}
final long computationStartTime = threadPool.rawRelativeTimeInMillis();
final var executionResults = updateTasks.stream().map(ExecutionResult::new).toList();





