[float] [[modules-node-xpack]] == [xpack]#X-Pack node settings# //This content is referenced from the elastic/elasticsearch/docs/reference/modules/node.asciidoc If {xpack} is installed, there is an additional node type: <>:: A node that has `xpack.ml.enabled` and `node.ml` set to `true`, which is the default behavior when {xpack} is installed. If you want to use {ml-features}, there must be at least one {ml} node in your cluster. For more information about {ml-features}, see {stack-ov}/xpack-ml.html[Machine learning in the {stack}]. IMPORTANT: Do not set use the `node.ml` setting unless {xpack} is installed. Otherwise, the node fails to start. If {xpack} is installed, nodes are master-eligible, data, ingest, and {ml} nodes by default. As the cluster grows and in particular if you have large {ml} jobs, consider separating dedicated master-eligible nodes from dedicated data nodes and dedicated {ml} nodes. To create a dedicated master-eligible node when {xpack} is installed, set: [source,yaml] ------------------- node.master: true <1> node.data: false <2> node.ingest: false <3> node.ml: false <4> xpack.ml.enabled: true <5> ------------------- <1> The `node.master` role is enabled by default. <2> Disable the `node.data` role (enabled by default). <3> Disable the `node.ingest` role (enabled by default). <4> Disable the `node.ml` role (enabled by default in {xpack}). <5> The `xpack.ml.enabled` setting is enabled by default in {xpack}. To create a dedicated data node when {xpack} is installed, set: [source,yaml] ------------------- node.master: false <1> node.data: true <2> node.ingest: false <3> node.ml: false <4> ------------------- <1> Disable the `node.master` role (enabled by default). <2> The `node.data` role is enabled by default. <3> Disable the `node.ingest` role (enabled by default). <4> Disable the `node.ml` role (enabled by default in {xpack}). To create a dedicated ingest node when {xpack} is installed, set: [source,yaml] ------------------- node.master: false <1> node.data: false <2> node.ingest: true <3> cluster.remote.connect: false <4> node.ml: false <5> ------------------- <1> Disable the `node.master` role (enabled by default). <2> Disable the `node.data` role (enabled by default). <3> The `node.ingest` role is enabled by default. <4> Disable {ccs} (enabled by default). <5> Disable the `node.ml` role (enabled by default in {xpack}). To create a dedicated coordinating node when {xpack} is installed, set: [source,yaml] ------------------- node.master: false <1> node.data: false <2> node.ingest: false <3> cluster.remote.connect: false <4> node.ml: false <5> ------------------- <1> Disable the `node.master` role (enabled by default). <2> Disable the `node.data` role (enabled by default). <3> Disable the `node.ingest` role (enabled by default). <4> Disable {ccs} (enabled by default). <5> Disable the `node.ml` role (enabled by default in {xpack}). [float] [[ml-node]] === [xpack]#Machine learning node# The {ml-features} provide {ml} nodes, which run jobs and handle {ml} API requests. If `xpack.ml.enabled` is set to true and `node.ml` is set to `false`, the node can service API requests but it cannot run jobs. If you want to use {ml-features} in your cluster, you must enable {ml} (set `xpack.ml.enabled` to `true`) on all master-eligible nodes. Do not use these settings if you do not have {xpack} installed. For more information about these settings, see <>. To create a dedicated {ml} node, set: [source,yaml] ------------------- node.master: false <1> node.data: false <2> node.ingest: false <3> cluster.remote.connect: false <4> node.ml: true <5> xpack.ml.enabled: true <6> ------------------- <1> Disable the `node.master` role (enabled by default). <2> Disable the `node.data` role (enabled by default). <3> Disable the `node.ingest` role (enabled by default). <4> Disable {ccs} (enabled by default). <5> The `node.ml` role is enabled by default in {xpack}. <6> The `xpack.ml.enabled` setting is enabled by default in {xpack}.