设置升级模式 API

编辑

设置集群范围的 upgrade_mode 设置,为升级准备机器学习索引。

请求

编辑

POST _ml/set_upgrade_mode

先决条件

编辑

需要 manage_ml 集群权限。此权限包含在 machine_learning_admin 内置角色中。

描述

编辑

升级集群时,在某些情况下,您必须重新启动节点并重新索引机器学习索引。在这些情况下,必须没有机器学习任务正在运行。您可以关闭机器学习任务,执行升级,然后再次打开所有任务。或者,您可以使用此 API 临时停止与任务和数据馈送关联的任务,并阻止新任务打开。您也可以在不需要重新索引机器学习索引的升级期间使用此 API,尽管在这种情况下停止任务不是必需的。

有关更多信息,请参阅 升级 Elastic Stack

enabled=true 时,此 API 会临时停止所有任务和数据馈送任务,并禁止启动新的任务和数据馈送任务。

随后,您可以调用 enabled 参数设置为 false 的 API,这会导致机器学习任务和数据馈送返回到其所需的状态。

您可以使用 获取机器学习信息 API 查看 upgrade_mode 设置的当前值。

upgrade_mode 设置为 true 时,不能打开新的机器学习任务。

查询参数

编辑
enabled
(可选,布尔值) 当 true 时,启用 upgrade_mode。默认为 false
timeout
(可选,时间) 等待请求完成的时间。默认值为 30 秒。

示例

编辑

以下示例为集群启用 upgrade_mode

resp = client.ml.set_upgrade_mode(
    enabled=True,
    timeout="10m",
)
print(resp)
response = client.ml.set_upgrade_mode(
  enabled: true,
  timeout: '10m'
)
puts response
const response = await client.ml.setUpgradeMode({
  enabled: "true",
  timeout: "10m",
});
console.log(response);
POST _ml/set_upgrade_mode?enabled=true&timeout=10m

当调用成功时,将返回确认响应。例如

{
  "acknowledged": true
}

只有在所有机器学习任务和数据馈送完成写入机器学习内部索引后,才会返回确认响应。这意味着重新索引这些内部索引是安全的,不会导致失败。您必须等待确认响应,然后才能重新索引,以确保所有写入都已完成。

当升级完成后,您必须将 upgrade_mode 设置为 false,以便机器学习任务重新开始运行。例如

resp = client.ml.set_upgrade_mode(
    enabled=False,
    timeout="10m",
)
print(resp)
response = client.ml.set_upgrade_mode(
  enabled: false,
  timeout: '10m'
)
puts response
const response = await client.ml.setUpgradeMode({
  enabled: "false",
  timeout: "10m",
});
console.log(response);
POST _ml/set_upgrade_mode?enabled=false&timeout=10m