📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.15

简而言之,当Elasticsearch尝试启动datafeed但由于某些索引正在升级而无法启动时,就会出现此错误。这意味着系统正在更新索引的过程中,在此过程完成之前无法启动datafeed。要解决此问题,您可以等待升级过程完成,或者暂停升级,启动datafeed,然后恢复升级。然而,通常建议让升级完成,以避免潜在的数据不一致。

日志上下文 #

日志"Could not start datafeed [" + datafeedId +"] as indices are being upgraded"的类名是 DatafeedNodeSelector.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考:

public void checkDatafeedTaskCanBeCreated() {
 if (MlMetadata.getMlMetadata(clusterState).isUpgradeMode()) {
 String msg = "Unable to start datafeed [" + datafeedId +"] explanation [" + AWAITING_UPGRADE.getExplanation() + "]";
 LOGGER.debug(msg);
 Exception detail = new IllegalStateException(msg);
 throw new ElasticsearchStatusException("Could not start datafeed [" + datafeedId +"] as indices are being upgraded",
 RestStatus.TOO_MANY_REQUESTS, detail);
 }
 AssignmentFailure assignmentFailure = checkAssignment();
 if (assignmentFailure != null && assignmentFailure.isCriticalForTaskCreation) {
 String msg = "No node found to start datafeed [" + datafeedId + "]; " +