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:
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.