如何将 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 集群中