11[[modules-node]]
22=== Node
33
4- Any time that you start an instance of {es}, you are starting a _node_. A
4+ Any time that you start an instance of {es}, you are starting a _node_. A
55collection of connected nodes is called a <<modules-cluster,cluster>>. If you
66are running a single node of {es}, then you have a cluster of one node.
77
@@ -25,11 +25,16 @@ dedicated data nodes, {ml} nodes, and {transform} nodes.
2525[[node-roles]]
2626==== Node roles
2727
28- You can define the roles of a node by setting `node.roles`. If you don't
29- configure this setting, then the node has the following roles by default:
30- `master`, `data`, `ingest`, `ml`.
28+ You can define the roles of a node by setting `node.roles`. If you don't
29+ configure this setting, then the node has the following roles by default:
3130
32- If you set node.roles, the node is assigned only the roles you specify.
31+ * `master`
32+ * `data`
33+ * `ingest`
34+ * `ml`
35+ * `remote_cluster_client`
36+
37+ NOTE: If you set `node.roles`, the node is assigned only the roles you specify.
3338
3439<<master-node,Master-eligible node>>::
3540
@@ -49,6 +54,12 @@ document before indexing. With a heavy ingest load, it makes sense to use
4954dedicated ingest nodes and to not include the `ingest` role from nodes that have
5055the `master` or `data` roles.
5156
57+ <<remote-node,Remote-eligible node>>::
58+
59+ A node that has the `remote_cluster_client` role (default), which makes it
60+ eligible to act as a remote client. By default, any node in the cluster can act
61+ as a cross-cluster client and connect to remote clusters.
62+
5263<<ml-node,Machine learning node>>::
5364
5465A node that has `xpack.ml.enabled` and the `ml` role, which is the default
@@ -191,9 +202,9 @@ and data roles.
191202
192203To create a dedicated data node, set:
193204[source,yaml]
194- -------------------
205+ ----
195206node.roles: [ data ]
196- -------------------
207+ ----
197208
198209[[node-ingest-node]]
199210==== Ingest node
@@ -206,15 +217,15 @@ ingest nodes, that will only perform this specific task.
206217To create a dedicated ingest node, set:
207218
208219[source,yaml]
209- -------------------
220+ ----
210221node.roles: [ ingest ]
211- -------------------
222+ ----
212223
213224[[node-ingest-node-setting]]
214225// tag::node-ingest-tag[]
215226`node.ingest` {ess-icon}::
216- Determines whether a node is an ingest node. <<ingest,Ingest nodes>> can apply
217- an ingest pipeline to transform and enrich a document before indexing. Default:
227+ Determines whether a node is an ingest node. <<ingest,Ingest nodes>> can apply
228+ an ingest pipeline to transform and enrich a document before indexing. Default:
218229`true`.
219230// end::node-ingest-tag[]
220231
@@ -241,9 +252,22 @@ serve the same purpose.
241252To create a dedicated coordinating node, set:
242253
243254[source,yaml]
244- -------------------
255+ ----
245256node.roles: [ ]
246- -------------------
257+ ----
258+
259+ [[remote-node]]
260+ ==== Remote-eligible node
261+
262+ By default, any node in a cluster can act as a cross-cluster client and connect
263+ to <<modules-remote-clusters,remote clusters>>. Once connected, you can search
264+ remote clusters using <<modules-cross-cluster-search,{ccs}>>. You can also sync
265+ data between clusters using <<xpack-ccr,{ccr}>>.
266+
267+ [source,yaml]
268+ ----
269+ node.roles: [ remote_cluster_client ]
270+ ----
247271
248272[[ml-node]]
249273==== [xpack]#Machine learning node#
@@ -262,25 +286,25 @@ For more information about these settings, see <<ml-settings>>.
262286To create a dedicated {ml} node in the {default-dist}, set:
263287
264288[source,yaml]
265- -------------------
289+ ----
266290node.roles: [ ml ]
267291xpack.ml.enabled: true <1>
268- -------------------
292+ ----
269293<1> The `xpack.ml.enabled` setting is enabled by default.
270294
271295[[transform-node]]
272296==== [xpack]#{transform-cap} node#
273297
274- {transform-cap} nodes run {transforms} and handle {transform} API requests. If
275- you have the {oss-dist}, do not use these settings. For more information, see
298+ {transform-cap} nodes run {transforms} and handle {transform} API requests. If
299+ you have the {oss-dist}, do not use these settings. For more information, see
276300<<transform-settings>>.
277301
278302To create a dedicated {transform} node in the {default-dist}, set:
279303
280304[source,yaml]
281- -------------------
305+ ----
282306node.roles: [ transform ]
283- -------------------
307+ ----
284308
285309[[change-node-role]]
286310==== Changing the role of a node
@@ -300,8 +324,8 @@ Each node checks the contents of its data path at startup. If it discovers
300324unexpected data then it will refuse to start. This is to avoid importing
301325unwanted <<modules-gateway-dangling-indices,dangling indices>> which can lead
302326to a red cluster health. To be more precise, nodes without the `data` role will
303- refuse to start if they find any shard data on disk at startup, and nodes
304- without both the `master` and `data` roles will refuse to start if they have any
327+ refuse to start if they find any shard data on disk at startup, and nodes
328+ without both the `master` and `data` roles will refuse to start if they have any
305329index metadata on disk at startup.
306330
307331It is possible to change the roles of a node by adjusting its
@@ -336,16 +360,16 @@ to `$ES_HOME/data` but can be configured in the `elasticsearch.yml` config
336360file an absolute path or a path relative to `$ES_HOME` as follows:
337361
338362[source,yaml]
339- -----------------------
363+ ----
340364path.data: /var/elasticsearch/data
341- -----------------------
365+ ----
342366
343367Like all node settings, it can also be specified on the command line as:
344368
345369[source,sh]
346- -----------------------
370+ ----
347371./bin/elasticsearch -Epath.data=/var/elasticsearch/data
348- -----------------------
372+ ----
349373
350374TIP: When using the `.zip` or `.tar.gz` distributions, the `path.data` setting
351375should be configured to locate the data directory outside the {es} home
0 commit comments