Directory Layout

edit

The directory layout of an installation is as follows:

Type Description Default Location Setting

home

Home of elasticsearch installation.

path.home

bin

Binary scripts including elasticsearch to start a node.

{path.home}/bin

conf

Configuration files including elasticsearch.yml

{path.home}/config

path.conf

data

The location of the data files of each index / shard allocated on the node. Can hold multiple locations.

{path.home}/data

path.data

logs

Log files location.

{path.home}/logs

path.logs

plugins

Plugin files location. Each plugin will be contained in a subdirectory.

{path.home}/plugins

path.plugins

repo

Shared file system repository locations. Can hold multiple locations. A file system repository can be placed in to any subdirectory of any directory specified here.

empty

path.repo

The multiple data locations allows to stripe it. The striping is simple, placing whole files in one of the locations, and deciding where to place the file based on the value of the index.store.distributor setting:

  • least_used (default) always selects the directory with the most available space
  • random selects directories at random. The probability of selecting a particular directory is proportional to amount of available space in this directory.

Note, there are no multiple copies of the same data, in that, its similar to RAID 0. Though simple, it should provide a good solution for people that don’t want to mess with RAID. Here is how it is configured:

path.data: /mnt/first,/mnt/second

Or the in an array format:

path.data: ["/mnt/first", "/mnt/second"]

Default Paths

edit

Below are the default paths that elasticsearch will use, if not explictly changed.

deb and rpm

edit
Type Description Location Debian/Ubuntu Location RHEL/CentOS

home

Home of elasticsearch installation.

/usr/share/elasticsearch

/usr/share/elasticsearch

bin

Binary scripts including elasticsearch to start a node.

/usr/share/elasticsearch/bin

/usr/share/elasticsearch/bin

conf

Configuration files elasticsearch.yml and logging.yml.

/etc/elasticsearch

/etc/elasticsearch

conf

Environment variables including heap size, file descriptors.

/etc/default/elasticseach

/etc/sysconfig/elasticsearch

data

The location of the data files of each index / shard allocated on the node.

/var/lib/elasticsearch/data

/var/lib/elasticsearch

logs

Log files location

/var/log/elasticsearch

/var/log/elasticsearch

plugins

Plugin files location. Each plugin will be contained in a subdirectory.

/usr/share/elasticsearch/plugins

/usr/share/elasticsearch/plugins

zip and tar.gz

edit
Type Description Location

home

Home of elasticsearch installation

{extract.path}

bin

Binary scripts including elasticsearch to start a node

{extract.path}/bin

conf

Configuration files elasticsearch.yml and logging.yml

{extract.path}/config

conf

Environment variables including heap size, file descriptors

{extract.path}/config

data

The location of the data files of each index / shard allocated on the node

{extract.path}/data

logs

Log files location

{extract.path}/logs

plugins

Plugin files location. Each plugin will be contained in a subdirectory

{extract.path}/plugins