Reindex from a remote cluster

您可以使用来自远程的reindex将索引从旧群集迁移到新的7.3.0群集。这使您可以从6.8之前的群集移动到7.3.0而不会中断服务。

WARNING Elasticsearch提供向后兼容性支持,支持将先前主要版本的索引升级到当前主要版本。跳过主要版本意味着您必须自己解决任何向后兼容性问题。

如果使用机器学习功能并且从6.5或更早版本的群集迁移索引,则作业和数据源配置信息不会存储在索引中。您必须在新群集中重新创建机器学习作业。如果要从6.6或更高版本的群集进行迁移,最好暂时停止与机器学习作业和数据馈送相关的任务,以防止在稍微不同的时间重新编制索引的不同机器学习索引之间的不一致。使用set upgrade mode API或停止所有数据馈送并关闭所有计算机学习作业。

要迁移索引:

  1. 设置一个新的7.3.0集群,并将现有集群添加到elasticsearch.yml中的reindex.remote.whitelist。
    1. reindex.remote.whitelist: oldhost:9200

    NOTE 新群集不必开始完全扩展。在迁移索引并将负载转移到新群集时,可以将节点添加到新群集并从旧群集中删除节点。

  2. 对于需要迁移到新集群的每个索引:
    1. 创建索引适当的映射和设置。将refresh_interval设置为-1并将number_of_replicas设置为0以便更快地重建索引。
    2. 使用reindex API将远程索引中的文档提取到新的7.3.0索引中:
      1. POST _reindex
      2. {
      3. "source": {
      4. "remote": {
      5. "host": "http://oldhost:9200",
      6. "username": "user",
      7. "password": "pass"
      8. },
      9. "index": "source",
      10. "query": {
      11. "match": {
      12. "test": "data"
      13. }
      14. }
      15. },
      16. "dest": {
      17. "index": "dest"
      18. }
      19. }
      如果通过将wait_for_completion设置为false在后台运行reindex作业,则reindex请求将返回一个task_id,您可以使用该任务API监视reindex作业的进度:GET _tasks / TASK_ID。
    3. reindex作业完成后,将refresh_interval和number_of_replicas设置为所需的值(默认设置为30s和1)。
    4. 完成重建索引并且新索引的状态为绿色后,您可以删除旧索引。