Machine Learning disabled by default?

So I was using ECE to spin up a Kibana instance and it appears that:
xpack.ml.enabled is set to false per below after doing a GET _xpack

  {
  "build": {
    "hash": "40710b2",
    "date": "2017-05-29T16:24:24.726Z"
  },
  "license": {
    "uid": "X",
    "type": "trial",
    "mode": "trial",
    "status": "active",
    "expiry_date_in_millis": 1504814931023
  },
  "features": {
    "graph": {
      "description": "Graph Data Exploration for the Elastic Stack",
      "available": true,
      "enabled": true
    },
    "ml": {
      "description": "Machine Learning for the Elastic Stack",
      "available": true,
      "enabled": false,
      "native_code_info": {
        "version": "N/A",
        "build_hash": "N/A"
      }
    },
    "monitoring": {
      "description": "Monitoring for the Elastic Stack",
      "available": true,
      "enabled": true
    },
    "security": {
      "description": "Security for the Elastic Stack",
      "available": true,
      "enabled": true
    },
    "watcher": {
      "description": "Alerting, Notification and Automation for the Elastic Stack",
      "available": true,
      "enabled": true
    }
  }

I'm not really sure why its disabled by default. And i have spun up 2 more clusters, and the same thing happened.
ES version: 5.4.1
Kibana Version: 5.4.1

Hello!
We disabled this feature for 5.4.x Elastic stacks in ECE.
Please use stack pack 5.5.1+ that you can download from Manage Elastic Stack Versions
Follow the instructions on that page to install a stack pack (just one curl command).

Although ML is disabled in 5.5.1+ by default too, you can enable it during creation a cluster. You need to put

xpack.ml.enabled: true

into a field "User Settings" on the page "Create Cluster".

1 Like

Thanks, That worked, is there a reason that ML is disabled by default now?

ML is disabled for a few reasons:

  • One of them is that it is not fully supported by the platform. For example, I do not recommend to create clusters with enabled ML using a topology with 2 availability zones (you should use either 1 or 3 AZ) because in this particular case we create a thin tiebreaker node to support the cluster's quorum. ML job can end up on that node and that can cause its failure.
  • Another reason is that we want a user to make a conscious choice. For example, we highly recommend having a dedicated cluster with enabled ML because machine learning process is quite greedy for resources.

Also, we have a great blog post about planning ML for production: Sizing for Machine Learning with Elasticsearch

@Wes_F to add to what @Yuri said, we recommend to deploy ML in dedicated nodes that are not data or master nodes. ECE does not currently support that kind of setup, and enabling ML means that it will be available on every node, and ML jobs can potentially consume a lot of memory and CPU and affect the stability and performance of the cluster. ECE will have support for dedicated nodes in a future version.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.