Elasticsearch中_cluster/settings持久化配置存储在哪个位置?
Elasticsearch persistent集群配置的持久化存储位置说明
通过_cluster/settings接口提交的persistent级别集群配置不会写入常规的elasticsearch.yml配置文件,它属于集群全局元数据的一部分,会被持久化到ES数据目录下的内部元数据文件中,节点重启后不会丢失。
具体存储路径
文件路径规则如下:{path.data}/nodes/{节点序号}/_state/global-{版本号}.dat
各部分路径说明:
{path.data}:ES的数据存储根目录,和你在elasticsearch.yml中配置的path.data参数一致,不同部署方式的默认值不同:- 二进制压缩包手动部署:默认值为
$ES_HOME/data - RPM/DEB包(yum/apt安装):默认值为
/var/lib/elasticsearch/
- 二进制压缩包手动部署:默认值为
{节点序号}:如果单台机器部署多个ES节点,会按0、1、2依次编号,单节点部署时固定为0{版本号}:为递增的数字,每次集群元数据(包括持久化配置、索引模板、索引元数据等)发生变更时,ES会生成新版本的元数据文件,旧版本文件会被后台自动清理。
注意事项
- 上述
global-*.dat是ES内部使用的二进制元数据文件,绝对不要手动编辑修改,否则会损坏集群状态,导致集群无法正常启动。 - 只有提交到
persistent字段下的配置会持久化到该文件;如果是提交到transient字段下的临时配置,不会落盘,集群全量重启后会自动失效。 - 集群元数据会在所有具备master资格的节点、数据节点上存储多副本,不会单点存储,保证元数据可靠性。
- 如果需要批量清空所有持久化集群配置,可以调用如下接口:
curl -X PUT 127.0.0.1:9200/_cluster/settings -H 'Content-Type: application/json' -d '{ "persistent" : {} }'
你问题中给出的修改indices.recovery.max_bytes_per_sec的调用示例,提交的就是persistent级别配置,生效后就会写入上述提到的元数据文件中。
内容的提问来源于stack exchange,提问作者winni wu
相关产品推荐
相关产品推荐

