最近笔者,帮同事的风控系统升级了一次es,怕以后忘了,故有此文。
升级方案:es2.3先保持不动,重新搭建一个es5.1,然后将es2.3数据reindex到5.1中去
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html
一、 准备工作
1:找到elasticsearch2.3的安装目录配置文件里指定的数据目录路径进行数据备份(数据在data目录下)
2:数据目录上传部署了elasticsearch5.1的服务器上,要与配置文件指定的路径一致
scp -rp data/ test@新es集群服务器地址:/elasticsearch-5.1.1_data
二、 创建重建索引请求json格式文件
vim es_remote_reindex.json
{
"conflicts": "proceed",
"source": {
"remote":{
"host":"http://旧集群的地址:9200" #远程的ES服务器IP&Port
},
"index":"ares_request_20180316" #旧集群的索引名称
},
"dest": {
"index":"ares_request_20180316", #新集群的索引名称
"op_type": "create"
}
}
在elasticsearch5.1上执行重建命令如下
curl http://新集群的地址/_reindex?pretty\&wait_for_completion=false -X POST -i -H"Content-Type:application/json" -H"Accept:application/json" --data @es_remote_reindex.json
注意此时的ip是新集群的ip
三、遇到的问题:
1:执行重建命令时报未加入白名单,需要修改ES的配置文件,报错如下:
vim /elasticsearch-5.1.1/config/elasticsearch.yml
加入如下配置reindex.remote.whitelist: ["旧集群地址"]
四、索引重建验证,新集群访问索引概况
写的比较粗糙,以后再排版吧