【问题标题】:What is the best way to migrate an ElasticSearch cluster to new hardware?将 ElasticSearch 集群迁移到新硬件的最佳方式是什么?
【发布时间】:2017-11-16 22:43:40
【问题描述】:

我有一个在 6 个功率不足的节点上运行的弹性搜索集群。我想将它迁移到一组新的 4 个非常重型节点。我正在尝试找出最好的方法。由于我要从 6 个节点变为 4 个节点,因此我不能只将数据文件从旧集群复制到新集群。看起来快照和恢复功能是可行的方法,但我找不到在一组硬件上创建快照并将其恢复到另一组的记录方法。有人用 ElasticSearch 做过这种硬件升级吗?

【问题讨论】:

  • 您不会在原始硬件上进行快照,scp(复制)到新硬件然后执行恢复吗?自从我查看文档以来已经有一段时间了,但也许只是尝试一下,看看会发生什么?
  • 是的,我就是这么想的,但我在任何地方都找不到这个过程的记录。

标签: elasticsearch


【解决方案1】:

要使用快照/恢复,您必须在所有服务器(即 NFS)上有一个共同的挂载点。您必须在两个集群上添加存储库,然后在一个集群上创建快照并在另一个集群上恢复。确切的命令在这里有很好的记录:http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html

另一种迁移方式是最初将集群连接在一起,然后等待一切变为绿色。然后完成旧慢节点的退役过程:How to remove node from elasticsearch cluster on runtime without down time

最后一种迁移方式是@Zouzias 推荐的方式,即使用程序将数据从一个集群复制到另一个集群。这里有一个基于 node.js 的开源项目:https://github.com/mallocator/Elasticsearch-Exporter,无需编写代码即可满足您的需求。

另一种迁移方式是使用 5.x 中可用的 API -- 远程reindex from remote

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://otherhost:9200",
      "username": "user",
      "password": "pass"
    },
    "index": "source"
  },
  "dest": {
    "index": "dest"
  }
}

但请务必阅读 link 提供的文档,因为您必须在 elasticsearch.yml 文件中设置 reindex.remote.whitelist

【讨论】:

    【解决方案2】:

    我为此任务采用的方法如下:使用 Java API、批量 API 和 Scroll API 编写一个(或多个)索引冰的自定义复制功能,从一个 elasticsearch 集群到另一个集群。

    更准确地说,我使用滚动 API 从旧索引中获取数据并使用批量 API 将其推送到新索引。

    我还将上述功能用于我的索引的备份/紧急副本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      相关资源
      最近更新 更多