【问题标题】:elasticsearch - how to copy data to another clusterelasticsearch - 如何将数据复制到另一个集群
【发布时间】:2013-07-26 21:56:11
【问题描述】:

如何获取文件的弹性搜索索引,然后将该数据插入另一个集群? 我想将数据从一个集群移动到另一个集群,但我无法直接连接它们。

【问题讨论】:

  • 两个集群上的 elasticsearch 版本是否相同?
  • 酷,布局怎么样:有多少节点?两个集群上的节点数相同?
  • 在当前集群上,我有 7 个数据节点和一个没有数据的节点,仅用于分派 3 个分片和 1 个副本。我想将所有数据移动到另一个有 4 个节点和 1 个调度程序的集群,其中有 4 个分片和 1 个副本。
  • 好的,询问是否需要重新索引数据或可以使用现有索引。如果你想拥有不同数量的主分片,你肯定需要,不幸的是。您是否对数据库中的数据进行了索引?还是弹性搜索也是您的数据存储?
  • 我也用elasticsearch来存储数据。

标签: elasticsearch


【解决方案1】:

有一个脚本可以帮助您将索引从一个集群备份和恢复到另一个集群。我没有对此进行测试,但可能会解决您的需求。 检查这个Backup and restore an Elastic search index

您还可以使用 perl 脚本将索引从一个集群复制到另一个(或同一个集群)。

查看此链接clintongormley/ElasticSearch.pm

【讨论】:

【解决方案2】:

如果您不需要保持 _id 相同并且唯一重要的一点是 _source,您可以使用带配置的 logstash:

input { //from one cluster } output { //to another cluster }

这里有更多信息:http://www.logstash.net/docs/1.4.2/

是的,它的方法很奇怪,但是我尝试将它用于按索引在集群之间进行即时数据传输,并且它很有魅力(当然,如果您不需要保留由 elasticsearch 生成的 _id)

【讨论】:

    【解决方案3】:

    我最近尝试过解决这个问题,有几种方法可以帮助您。

    1. 使用 Elasticsearch 的 Snapshot and Restore APIs。 您可以在源集群上take a snapshot 并在目标集群上use that snapshot to restore 数据。

    2. 如果您的设置允许安装外部包,您也可以使用Elasticdump

    HTH!

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-11
      相关资源
      最近更新 更多