Configuration Propertiesedit

Once installed, define the configuration for the hdfs repository through the REST API:

PUT _snapshot/my_hdfs_repository
  "type": "hdfs",
  "settings": {
    "uri": "hdfs://namenode:8020/",
    "path": "elasticsearch/repositories/my_hdfs_repository",
    "": "true"

The following settings are supported:


The uri address for hdfs. ex: "hdfs://<host>:<port>/". (Required)


The file path within the filesystem where data is stored/loaded. ex: "path/to/file". (Required)


Whether to load the default Hadoop configuration or not. (Enabled by default)


Inlined configuration parameter to be added to Hadoop configuration. (Optional) Only client oriented properties from the hadoop core and hdfs configuration files will be recognized by the plugin.


Whether to compress the metadata or not. (Disabled by default)


Throttles per node restore rate. Defaults to 40mb per second.


Throttles per node snapshot rate. Defaults to 40mb per second.


Makes repository read-only. Defaults to false.


Override the chunk size. (Disabled by default)


Kerberos principal to use when connecting to a secured HDFS cluster. If you are using a service principal for your elasticsearch node, you may use the _HOST pattern in the principal name and the plugin will replace the pattern with the hostname of the node at runtime (see Creating the Secure Repository).

A Note on HDFS Availabilityedit

When you initialize a repository, its settings are persisted in the cluster state. When a node comes online, it will attempt to initialize all repositories for which it has settings. If your cluster has an HDFS repository configured, then all nodes in the cluster must be able to reach HDFS when starting. If not, then the node will fail to initialize the repository at start up and the repository will be unusable. If this happens, you will need to remove and re-add the repository or restart the offending node.