版本: 8.6-8.9
简而言之,当Elasticsearch无法识别命令或请求中指定的节点ID时,就会出现此错误。这可能是由于节点ID不正确、节点宕机或不可访问,或者网络问题造成的。要解决此问题,您可以验证节点ID,确保所有节点都正常运行,并检查网络连接。如果问题仍然存在,可以考虑检查集群健康状况和日志以获取更详细的信息。
日志上下文 #
日志 “could not resolve node IDs {}” 的类名是 TransportPrevalidateNodeRemovalAction.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:
var resolvedNode = Arrays.stream(ids).map(discoveryNodes::get).filter(Objects::nonNull).collect(Collectors.toSet());
if (resolvedNode.size() < ids.length) {
// find out which one wasn't found
var existingNodeIds = discoveryNodes.stream().map(DiscoveryNode::getId).collect(Collectors.toSet());
var idsNotFound = Arrays.stream(ids).filter(id -> existingNodeIds.contains(id) == false).collect(Collectors.toSet());
throw new ResourceNotFoundException("could not resolve node IDs {}"; idsNotFound);
}
return resolvedNode;
}
// Resolve by external ID
logger.debug("resolving nodes for prevalidation using external ID");





