资讯专栏INFORMATION COLUMN

Elasticsearch 参考指南(升级前重新索引)

546669204 / 377人阅读

摘要:要升级包含在中创建的索引的集群,必须在升级到之前重新索引或删除它们。将和重置为旧索引中使用的值。等待索引状态变为。在单个更新别名请求中删除旧索引。当重新索引作业完成时,将和设置为所需的值默认设置是和。

升级前重新索引

Elasticsearch可以读取上一个主要版本中创建的索引,旧的索引必须重新索引或删除。Elasticsearch 6.x可以使用Elasticsearch 5.x中创建的索引,但不能使用Elasticsearch 2.x或之前创建的索引,Elasticsearch 5.x可以使用Elasticsearch 2.x中创建的索引,但不能使用1.x或之前创建的索引。

如果存在不兼容的索引,Elasticsearch节点将无法启动。

要升级包含在2.x中创建的索引的Elasticsearch 5.x集群,必须在升级到6.x之前重新索引或删除它们。

要升级一个运行2.x的Elasticsearch集群,有两个选项:

执行完整的集群重启升级到5.6,重新索引2.x索引,然后执行滚动升级到6.x,如果你的Elasticsearch 2.x集群包含在2.x之前创建的索引,那么你必须在升级到5.6之前删除或重新索引它们,有关从2.x升级到5.6的更多信息,请参阅Elasticsearch 5.6参考资料中的升级Elasticsearch。

创建一个新的6.x集群,从远程重新索引,直接从2.x集群导入索引。

要升级Elasticsearch 1.x集群,有两个选项:

执行完整的集群重启升级到Elasticsearch 2.4.x,并重新索引或删除1.x索引,然后,执行完整的集群重启升级到5.6,重新索引或删除2.x索引,最后,执行滚动升级到6.x。有关从1.x升级到2.4的更多信息,请参见Elasticsearch 2.4参考资料中的升级Elasticsearch,有关从2.4升级到5.6的更多信息,请参阅Elasticsearch 5.6参考资料中的升级Elasticsearch。

创建一个新的6.x集群,从远程重新索引,直接从1.x集群导入索引。

升级基于时间的索引

如果你使用基于时间的索引,你可能不需要将之前的5.x索引向前推进到6.x,基于时间的索引中的数据通常会随着时间的推移而变得不那么有用,并且随着它们的时间期限超过你的保留期而被删除。

除非你的保留期非常长,否则你可以等待升级到6.x,直到你所有的前5.x索引都被删除。

就地重新索引

用reindex API手动重新索引你的旧索引:

创建一个新索引并从旧索引复制映射和设置。

refresh_interval设置为-1,并且number_of_replicas设置为0,以实现高效的重新索引。

使用Reindex API将旧索引中的所有文档重新索引到新索引。

refresh_intervalnumber_of_replicas重置为旧索引中使用的值。

等待索引状态变为green

在单个更新别名请求中:

删除旧索引。

向新索引添加具有旧索引名称的别名。

将旧索引上存在的任何别名添加到新索引中。

迁移援助和升级工具

X-Pack 5.6提供了迁移援助和升级工具,简化了重新索引和升级到6.x,这些工具在X-Pack试用版和基本许可中是免费的,你可以使用它们来升级,无论X-Pack是不是你的Elastic Stack的一个常规部分,有关更多信息,请参阅http://www.elastic.co/guide/en/elastic-stack/6.4/upgrading-elastic-stack.html。

从远程集群重新索引

你可以使用reindex从远程将索引从旧集群迁移到新的6.x集群,这使你可以在不中断服务的情况下将之前的5.6集群迁移到6.x。

Elasticsearch提供向后兼容支持,可以将以前的主要版本的索引升级到当前的主要版本,跳过主要版本意味着你必须自己解决所有向后兼容性问题。

要迁移你的索引:

在旧集群旁边设置一个新的6.x集群,通过将旧集群添加到elasticsearch.yml中的reindex.remote.whitelist,使其能够访问旧集群:

reindex.remote.whitelist: oldhost:9200
新的集群不必完全扩展,当你迁移索引并将负载转移到新集群时,你可以向新集群添加节点,并从旧集群中删除节点。

对于需要迁移到6.x集群的每个索引:

用适当的映射和设置在6.x中创建一个新的索引,将refresh_interval设置为-1,并将number_of_replicas设置为0,以便更快地重新索引。

从远程重新索引以将文档从旧索引拉到新的6.x索引。

POST _reindex
{
 "source": {
   "remote": {
     "host": "http://oldhost:9200",
     "username": "user",
     "password": "pass"
   },
   "index": "source",
   "query": {
     "match": {
       "test": "data"
     }
   }
 },
 "dest": {
   "index": "dest"
 }
}

如果通过将wait_for_completion设置为false在后台运行重新索引作业,那么重新索引请求将返回一个task_id,你可以使用task API用来监控重新索引作业的进度:GET _tasks/TASK_ID

当重新索引作业完成时,将refresh_intervalnumber_of_replicas设置为所需的值(默认设置是30s1)。

一旦复制完成,新索引的状态为green,你就可以删除旧索引。


下一篇:多索引

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34319.html

相关文章

  • Elasticsearch 参考指南(目录)

    摘要:为了防止用户覆盖中指定的索引,将此设置添加到文件中默认值为,但当设置为时,将拒绝在请求体中指定的显式索引的请求。所有都是单索引,参数接受单个索引名,或指向单个索引的别名。查询子句的行为取决于它们是用于查询上下文还是过滤器上下文。 Elasticsearch 参考指南 Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎,它允许你快速,近实时地存储,搜索和分析大量数据,它通...

    liaosilzu2007 评论0 收藏0
  • Elasticsearch 参考指南(多索引

    摘要:多索引大多数引用参数的都支持跨多索引执行,使用简单的符号或表示所有索引。如果指定,则将禁用通配符扩展,如果指定了,通配符表达式将扩展到所有索引这相当于指定。单索引如文档和单索引别名不支持多索引。 多索引 大多数引用index参数的API都支持跨多索引执行,使用简单的test1,test2,test3符号(或_all表示所有索引)。 它还支持通配符,例如:test*、*test、te*t...

    TesterHome 评论0 收藏0
  • Elasticsearch搜索调优权威指南 (2/3)

    摘要:本系列教程旨在更进一步讨论针对及以上版本的搜索调优技术策略及建议。强制合并只读索引只读索引在合并为单一的段后将会非常受益。强制合并操作支持通过合并来减少段数量。该调用在合并完成之前将会处于阻塞状态。 本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/AAkVdzmkgdBisuQZldsnvg 英文原文:https://qbox.io/...

    wenzi 评论0 收藏0
  • Elasticsearch 参考指南(在6.4中的重要更改)

    摘要:在中的重要更改本节讨论在将应用程序迁移到时需要注意的更改。这个参数在中默认为,在中立即被弃用,将只能在中被设置为,并将在中删除。 在6.4中的重要更改 本节讨论在将应用程序迁移到Elasticsearch 6.4时需要注意的更改。 bin/plugin不能再删除x-pack了bin/plugin remove x-pack不再有效,在升级到6.4或以后的版本之前,你应该删除X-Pac...

    jcc 评论0 收藏0
  • Elasticsearch 参考指南(Reindex API)

    摘要:重新索引要求为源索引中的所有文档启用。重新索引不会尝试设置目标索引,它不会复制源索引的设置,你应该在运行操作之前设置目标索引,包括设置映射碎片数副本等。 Reindex API 重新索引要求为源索引中的所有文档启用_source。 重新索引不会尝试设置目标索引,它不会复制源索引的设置,你应该在运行_reindex操作之前设置目标索引,包括设置映射、碎片数、副本等。 _reindex的最...

    luckyw 评论0 收藏0

发表评论

0条评论

546669204

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<