ElasticSearch:从0.20.5迁移到1.5.2 - 单节点 - 建议的步骤?

时间:2015-06-04 15:33:09

标签: elasticsearch

我们对我们的ES装备非常满意,我们没有考虑升级它......但现在我们需要。

我们在CentOs上运行0.20。单独,独立的ES系统。

我们看到代码相关的变化从0.9到1.x,以及我们受到控制的变化。

使这个装备最新的最佳步骤是什么? (我们可以在旁边设置第二台服务器,如果这样可以使流程更清洁。)

2 个答案:

答案 0 :(得分:0)

你还在跑0.20,哇!!如果您对0.20的性能和功能感到满意,那么肯定会对1.5.2感到非常高兴!

在实际进入升级之前,请务必检查breaking changes页面。 1.0版本中的许多内容都发生了变化,您需要确保首先调整所有当前资产(查询,客户端代码等)。另请注意,从ES 1.2开始,动态脚本编写为disabled by default,因此如果您使用动态脚本,则需要将其考虑在内,并在您的配置中包含script.disable_dynamic: false,但0.20离你很远可能不必关心那个。

然后,如果您检查官方upgrade guide,您会看到在一个步骤中跳过多个版本,您需要重新启动群集,但由于您有一个节点,这意味着您的升级期间服务将不可用。请注意,由于1.0之前版本和1.0之后的版本不兼容,因此无法启动第二个节点。

一旦你准备好了,即你已经完成了改变,并根据需要进行了调整,请在进入升级之前确保back up your data

还要确保将JDK升级到至少最新的Java 7,如果可能的话,最好是Java 8,否则ES 1.5.2将无法启动。

然后,您可以使用curl -XPOST 'http://localhost:9200/_shutdown'关闭节点,将ES安装升级到1.5.2并重新启动节点。

节点恢复并完全启动后,您可以使用curl -XPOST 'http://localhost:9200/_upgrade' upgrade your indice files使用最新的Lucene格式。

免责声明:请注意,有很多东西在0.2和1.5.2之间发生了变化,我可能错过了一些,但上面的观点应该足以让你开始。如果您可以在临时环境中进行训练,您可能能够全面了解并顺利升级。

答案 1 :(得分:0)

我强烈建议从头开始创建一个新的集群并重新索引所有数据。

赞成这一点的唯一和最重要的论据是,自1.3,Elasticsearch has checksums added。这意味着,实际上会检查通过电线(网络)移动的东西的传输是否正确。

我假设"单身,独立"意味着一个节点。校验和的东西对于一个节点没有多大意义,但如果你有多个节点就有可能出现问题。

此外,还有一些设置与索引本身一起保存(一个想到的是范围查询的精确步骤)。为了获得干净,更新的索引,我强烈建议重新索引新的1.5集群中的数据。