![ElasticSearch Cookbook](https://wfqqreader-1252317822.image.myqcloud.com/cover/330/34851330/b_34851330.jpg)
Setting up different node types (advanced)
ElasticSearch is a native designed for the cloud, so when you need to release a production environment with a huge number of records and you need high availability and good performance, you need to aggregate more nodes in a cluster.
ElasticSearch allows defining different types of nodes to balance and improve overall performances.
Getting ready
You need a working ElasticSearch installation.
How to do it...
For an advance cluster setup, there are some parameters that must be configured to define different node types. These parameters are in config
/elasticsearch.yml
and they can be set with the following steps:
- Setup if the node can be master or not:
node.master: true
- Setup if a node must contain data or not:
node.data: true
How it works...
The working of different nodes types is as follows:
node.master
: This parameter defines that the node can become master for the cloud. The default value for this parameter istrue
.A master node is an arbiter for the cloud: it takes a decision about shard management, it keeps cluster status and it's the main controller of every index action.
node.data
: This allows you to store data in the node. The default value for this parameter istrue
. This node will be a worker that indexes and searches data.
Mixing these two parameters, it's possible to have different node types:
![](https://epubservercos.yuewen.com/F044A9/18607222101296806/epubprivate/OEBPS/Images/3.jpg?sign=1739642558-SwymjMtWpVNP8DGgpokEFNRdy72jasVH-0-7fa3d01bade6481e6ee97e2155f187c0)
The more frequently used node type is the first one, but if you have a very big cluster or special needs, you can differentiate the scopes of your nodes to better serve searches and aggregations.