我有一个在6个动力不足的节点上运行的弹性搜索集群。我想将它迁移到一组新的4个非常重的节点。我试图找出最好的方法。由于我从6个节点到4个节点,我不能只是将数据文件从旧集群复制到新集群。看起来快照和恢复功能是可行的方法,但我无法找到一种记录的方法来在一组硬件上创建快照并将其恢复到另一组硬件中。有没有人用ElasticSearch做过这种硬件升级?
答案 0 :(得分:9)
要使用快照/恢复,您必须在所有服务器(即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
。