将ElasticSearch集群迁移到新硬件的最佳方法是什么?

Jos*_*ies 5 elasticsearch

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

Alc*_*zar 9

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

迁移的另一种方法是最初将集群连接在一起并等待所有内容变为绿色.然后完成退出旧慢节点的过程:如何在运行时从弹性搜索集群中删除节点而不停机

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

迁移的另一种方法是使用5.x中提供的API - 来自远程远程的reindex:

POST _reindex
{
  "source": {
    "remote": {
      "host": "http://otherhost:9200",
      "username": "user",
      "password": "pass"
    },
    "index": "source"
  },
  "dest": {
    "index": "dest"
  }
}
Run Code Online (Sandbox Code Playgroud)

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