背景
機(jī)房需遷移丐膝,決定使用阿里云作為臨時(shí)過渡,因此需要將數(shù)據(jù)從久的集群遷移到新的機(jī)器上淫半。
遷移的方法有很多種溃槐,可以使用ES自帶的reindex,也可以使用開源工具科吭。我不想裝其他東西昏滴,所以決定使用reindex。以下為操作記錄对人。
步驟
1.設(shè)置白名單
A集群的數(shù)據(jù)遷移到B集群上谣殊,因此需要修改B集群的elasticsearch.yml
配置文件,添加以下配置
# reindex.remote.whitelist: A的IP:端口牺弄,例如:
reindex.remote.whitelist: 222.168.1.23:9200
然后重啟es姻几,讓配置生效
2.創(chuàng)建索引
在新的集群創(chuàng)建索引表,我使用kibana工具進(jìn)行創(chuàng)建
PUT new_article
{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 2
},
"mappings": {
"properties": {
"id": {
"type": "keyword"
},
"title": {
"type": "keyword"
},
"content": {
"search_analyzer": "ik_smart",
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
3.開始遷移
同樣是在kibana中進(jìn)行操作势告。
POST _reindex?wait_for_completion=false
{
"source": {
"index": "old_article",
"remote": {
"host": "http://222.168.1.23:9200",
"username": "anson",
"password": "123456"
},
"query": {
"match_all": {}
},
"size": 1000
},
"dest": {
"index": "new_article"
}
}
執(zhí)行完會(huì)返回一個(gè)taskIdV4HXRiU6TU0mTDTaf_w:906
蛇捌,通過此id可以查詢導(dǎo)入的進(jìn)度
GET _tasks/V4HXRiU6TU0mTDTaf_w:906
ps. 如果遷移的數(shù)據(jù)量太大,不加wait_for_completion=false培慌,接口會(huì)報(bào)超時(shí)錯(cuò)誤
{"statusCode":502,"error":"Bad Gateway","message":"Client request timeout"}
4.取消任務(wù)
POST _tasks/V4HXRiU6TU0mTDTaf_w:906/_cancel