ElasticSearch Cookbook(Second Edition)
上QQ阅读APP看书,第一时间看更新

Setting up a node

ElasticSearch allows you to customize several parameters in an installation. In this recipe, we'll see the most-used ones in order to define where to store data and improve performance in general.

Getting ready

You need a working ElasticSearch installation.

How to do it...

Perform the following steps to set up a simple node:

  1. Open the config/elasticsearch.yml file with an editor of your choice.
  2. Set up the directories that store your server data:
    • For Linux or Mac OS X:
      path.conf: /opt/data/es/conf
      path.data: /opt/data/es/data1,/opt2/data/data2
      path.work: /opt/data/work
      path.logs: /opt/data/logs
      path.plugins: /opt/data/plugins
    • For Windows:
      path.conf: c:\Elasticsearch\conf
      path.data: c:\Elasticsearch\data
      path.work: c:\Elasticsearch\work
      path.logs: c:\Elasticsearch\logs
      path.plugins: c:\Elasticsearch\plugins
  3. Set up parameters to control the standard index creation. These parameters are:
    index.number_of_shards: 5
    index.number_of_replicas: 1

How it works...

The path.conf parameter defines the directory that contains your configuration: mainly elasticsearch.yml and logging.yml. This is the default $ES_HOME/config parameter with the ES_HOME directory you installed ElasticSearch in.

Note

It's useful to set up the config directory outside your application directory, so you don't need to copy configuration files every time you update the version or change the ElasticSearch installation directory.

The path.data parameter is the most important, as it allows you to define one or more directories where you can store your index data. When you define more than one directory, they are managed in a similar way as RAID 0, favoring locations with the most free space.

The path.work parameter is a location where ElasticSearch puts temporary files.

The path.log parameter is where logfiles are put. Logging is controlled in logging.yml.

The path.plugins parameter allows you to override the plugins path (the default is $ES_HOME/plugins). It's useful to use system wide plugins.

The main parameters used to control index and shards are index.number_of_shards, which controls the standard number of shards for a new created index, and index.number_of_replicas, which controls the initial number of replicas.

There's more...

There are a lot of other parameters that can be used to customize your ElasticSearch installation, and new ones are added with new releases. The most important parameters are described in this recipe and the Setting up Linux systems recipe in this chapter.

See also