Machine learning settings in Elasticsearch

您无需配置任何设置即可使用机器学习。它默认启用。

IMPORTANT: 机器学习使用SSE4.2指令,因此仅适用于CPU支持SSE4.2的机器。如果在较旧的硬件上运行Elasticsearch,则必须禁用机器学习(通过将xpack.ml.enabled设置为false)。

所有这些设置都可以添加到elasticsearch.yml配置文件中。还可以使用群集更新设置API在群集中更新动态设置。

TIP: 动态设置优先于elasticsearch.yml文件中的设置。

一般机器学习设置

node.ml: 设置为true(默认值)以将节点标识为机器学习节点。

如果在elasticsearch.yml中设置为false,则节点无法运行作业。如果设置为true但xpack.ml.enabled设置为false,则忽略node.ml设置,并且节点无法运行作业。如果要运行作业,则群集中必须至少有一个计算机学习节点。

IMPORTANT 在专用协调节点或专用主节点上,禁用node.ml角色。

xpack.ml.enabled 设置为true(默认值)以在节点上启用机器学习。

如果在elasticsearch.yml中设置为false,则在节点上禁用机器学习API。因此,节点无法打开作业,启动数据馈送或接收与机器学习API相关的传输(内部)通信请求。它还会影响连接到此Elasticsearch实例的所有Kibana实例;你不需要在那些kibana.yml文件中禁用机器学习。有关在特定Kibana实例中禁用机器学习的详细信息,请参阅Kibana机器学习设置。

IMPORTANT 如果要在群集中使用计算机学习功能,则必须在所有符合主节点的节点上将xpack.ml.enabled设置为true。这是默认行为。

xpack.ml.max_machine_memory_percent (Dynamic) 机器学习可用于运行分析过程的机器内存的最大百分比。(这些进程与Elasticsearch JVM分开。)默认为30%。限制基于机器的总内存,而不是当前的可用内存。如果这样做会导致机器学习作业的估计内存使用超过限制,则不会将作业分配给节点。

xpack.ml.max_model_memory_limit (Dynamic) 可以为此节点上的任何作业设置的最大model_memory_limit属性值。如果尝试使用大于此设置值的model_memory_limit属性值创建作业,则会发生错误。更新此设置时,现有作业不受影响。有关model_memory_limit属性的更多信息,请参阅分析限制

xpack.ml.max_open_jobs (Dynamic) 可以在节点上同时运行的最大作业数。默认为20.在此上下文中,作业包括异常检测器作业和数据帧分析作业。最大作业数也受内存使用量的限制。因此,如果作业的估计内存使用量高于允许的值,则节点上将运行的作业将减少。在7.1版之前,此设置是每个节点的非动态设置。它在7.1版本中成为群集范围的动态设置。因此,只有在群集中的每个节点都运行7.1或更高版本之后,才会使用节点启动后对其值的更改。允许的最大值为512。

xpack.ml.node_concurrent_job_allocations (Dynamic) 每个节点上可以同时处于打开状态的最大作业数。通常,作业在进入开放状态之前会在此状态下花费少量时间。必须在开放时恢复大型模型的工作在开放状态下花费更多时间。默认为2。

高级机器学习设置 这些设置适用于高级用例;默认值通常是足够的:

xpack.ml.enable_config_migration (Dynamic) 保留。

xpack.ml.max_anomaly_records (Dynamic) 每个桶输出的最大记录数。默认值为500。

xpack.ml.max_lazy_ml_nodes (Dynamic) 懒惰旋转机器学习节点的数量。在第一个机器学习作业打开之前不需要ML节点的情况下很有用。它默认为0并且最大可接受值为3.如果当前ML节点数> =此设置,则假设没有更多可用的延迟节点,因为已经设置了所需数量的节点。当此设置设置为> 0并且没有可以接受作业的节点打开作业时,作业将保持打开状态,直到将新ML节点添加到群集并且作业分配为运行那个节点。

IMPRORTANT 此设置假定某些外部进程能够将ML节点添加到群集。此设置仅在与此类外部过程结合使用时才有用。

xpack.ml.process_connect_timeout (Dynamic) 与Elasticsearch JVM分开运行的机器学习进程的连接超时。默认为10秒。某些机器学习处理由分别运行到Elasticsearch JVM的进程完成。启动此类进程时,它们必须连接到Elasticsearch JVM。如果此过程未在此设置指定的时间段内连接,则假定该过程已失败。默认为10秒。此设置的最小值为5秒。