# Node types in an ElasticSearch cluster

**URL:** <https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488>\
**Category:** Elasticsearch\
**Created:** [July 13, 2015, 11:26pm UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488 "2015-07-13T23:26:03Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 13, 2015, 11:26pm UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/1 "2015-07-13T23:26:03Z")

</div>

Hello everyone,

I am reading this article and it seems we have various types of nodes, master nodes, client nodes, aggregation query result nodes, data nodes, etc.

Wondering if there is an introduction for all kinds of nodes and best practice to plan them in a cluster?

[https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html)

thanks in advance,  
Lin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 13, 2015, 11:34pm UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/2 "2015-07-13T23:34:36Z")

</div>

I think there is only that page, which could probably be expanded on 😄

However there are only 4 node types - master, data, client and tribe;

- Master only nodes take place in updating cluster state as well as master elections. They should never handle query or index loads.
- Data only nodes store data that is indexed into Elasticsearch. These can also handle querying and indexing.
- Client only nodes are used as load balancers for indexing and searching.
- Tribe nodes are akin to cross-cluster client nodes, in that they can query more than one cluster. Think federated search.

Regarding placement, we generally recommend separating roles out for larger clusters, \>10 nodes, but that's arbitrary and very use case dependant.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 13, 2015, 11:54pm UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/3 "2015-07-13T23:54:45Z")

</div>

Thanks Mark,

Client node is where search results are aggregated from data nodes, and returned finally to customer?

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 14, 2015, 1:10am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/4 "2015-07-14T01:10:18Z")

</div>

Yes, although a data or a master node can also do this.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 14, 2015, 1:53am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/5 "2015-07-14T01:53:08Z")

</div>

Thanks Mark,

Is there a configuration samples for all kinds of nodes in a cluster? I currently only have a single node cluster and want to learn by sample how to configure a multi-node cluster.

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 14, 2015, 1:59am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/6 "2015-07-14T01:59:52Z")

</div>

Not really, it's just a combination of `node.master:` and `node.data:` being set to true or false.

If you set `node.client: true` it implicitly sets `node.master` and `node.data` to false.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 14, 2015, 2:14am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/7 "2015-07-14T02:14:43Z")

</div>

Thanks Mark,

What is the benefit of having dedicated client node other than using master/data node for search function?

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 14, 2015, 2:19am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/8 "2015-07-14T02:19:28Z")

</div>

You can potentially run a massive query against a master or data node that can cause OOM, which is bad.

If you use a client node and it OOM's then you have no worries about impacting your data or your cluster state.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 14, 2015, 2:36am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/9 "2015-07-14T02:36:51Z")

</div>

Making sense, thanks Mark.

Any other documents on best practices of how to configure (e.g. # of each nodes, etc.) multi-role nodes cluster?

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![warkolm](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/warkolm/32/39224_2.png) [@warkolm](https://discuss.elastic.co/u/warkolm)\
**Post date:** [July 14, 2015, 4:40am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/10 "2015-07-14T04:40:40Z")

</div>

No, the rest is based on your needs and use case.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 14, 2015, 5:10am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/11 "2015-07-14T05:10:16Z")

</div>

Thanks Mark,

Wondering how to decide how many nodes for each role do I need?

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![magnusbaeck](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/magnusbaeck/32/44943_2.png) [@magnusbaeck](https://discuss.elastic.co/u/magnusbaeck)\
**Post date:** [July 14, 2015, 5:51am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/12 "2015-07-14T05:51:12Z")

</div>

> Wondering how to decide how many nodes for each role do I need?

That's a "how long is a piece of rope" kind of question that depends on too many factors. If you don't have at least ten nodes (give or take) I don't think you should spend time on this.

Keep in mind that if you want to have master-only nodes you should have (at least) three since one master node results in a single point of failure for your cluster and two makes you liable to split brain issues. And the cost of three master-only nodes isn't justifiable for small clusters.

---

<div class="post-metadata">

**Author:** ![linlma](https://avatars.discourse-cdn.com/v4/letter/l/ec9cab/32.png) [@linlma](https://discuss.elastic.co/u/linlma)\
**Post date:** [July 14, 2015, 6:04am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/13 "2015-07-14T06:04:58Z")

</div>

Thank you Magnus.

regards,  
Lin

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 12:01am UTC](https://discuss.elastic.co/t/node-types-in-an-elasticsearch-cluster/25488/14 "2017-07-06T00:01:38Z")

</div>


