如何将 elasticsearch 数据从一个数据目录传输到另一个数据目录?

Posted

技术标签:

【中文标题】如何将 elasticsearch 数据从一个数据目录传输到另一个数据目录?【英文标题】:How can I transfer elasticsearch data from one data directory to another? 【发布时间】:2015-02-19 08:33:54 【问题描述】:

场景: 我将 elasticsearch 的默认数据目录更改为其他目录,并在不重新启动服务器的情况下开始索引数据。事实证明,它将索引数据保存在默认目录(/var/lib/elasticsearch)而不是新目录中。在例行的服务器重启后,它转移到了新目录,现在我们的大部分数据都放在了默认目录中,其中一些放在了新目录中。

如何将旧目录中的数据与新目录中的数据合并? elasticsearch版本当然是一样的。

【问题讨论】:

“我把elasticsearch的默认数据目录改成了别的”——你到底做了什么?更改 elasticsearch.yml 中的path.data ?见:elasticsearch-users.115913.n3.nabble.com/… 是的,我更改了 path.data。问题是数据放置在两个位置。我不能只将旧数据复制到新目录,因为那会覆盖那里的现有数据。我必须以某种方式合并数据。 您是否尝试创建snapshot 然后恢复它? 【参考方案1】:

在 ElasticSearch 5.6 中编辑以下文件。

    cat /etc/default/elasticsearch | grep -i DATA_DIR'DATA_DIR=/mnt/elasticsearch

    cat /usr/lib/systemd/system/elasticsearch.service | grep -i Environment=DATA_DIR=/mnt/elasticsearch

重启服务

systemctl daemon-reload 
systemctl restart elasticsearch.service 

【讨论】:

以上是关于如何将 elasticsearch 数据从一个数据目录传输到另一个数据目录?的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe

Elasticsearch:将数据从 Elasticsearch 和 Kibana 导出到 Pandas Dataframe

如何将弹性数据从一台服务器传输到另一台服务器

Elasticsearch:将关系数据库中的数据提取到 Elasticsearch 集群中

Elasticsearch:将关系数据库中的数据提取到 Elasticsearch 集群中

Elasticsearch:如何将 Strava 数据导入 Elastic Stack