elasticsearch資料遷移
阿新 • • 發佈:2018-12-18
下面介紹兩個工具對Elasticsearch資料進行遷移:
- elasticdump
- elasticsearch-exporter
elasticdump
安裝步驟
yum install epel-release
yum install nodejs
yum install nodejs npm
npm install elasticdump
- 如果出現這個錯誤:
a、沒有
package.json
這個檔案。可以使用npm init -f
命令生成一下 b、relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libss
yum install -y openssl
然後安裝ws 命令:npm install ws
如果安裝成功,elasticdump
的預設路徑在node_modules/elasticdump/bin
,首先開啟目錄
cd node_modules/elasticdump/bin
執行下面語句可以把資料遷移到目標機器
./elasticdump --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=data
- input:遷出機器
- output: 目標機器
這一步是遷移到新索引的命令,把192.168.1.1的original
mapping
,不然遷移過去型別會自動判斷,date
型別判斷成string等等
如果你很懶你不想自己建立索引,那麼你可以在執行上述命令前執行以下命令:
./elasticdump --input=http://192.168.1.1:9200/original --output=http://192.168.1.2:9200/newCopy --type=mapping
不一樣的地方就是--type=mapping
,意思是把原始索引original
的mapping
結構遷移給目標索引newCopy
。
如果索引很多,你還是懶得一個個去遷移,那麼你可以改用這個命令:
./elasticdump --input=http://192.168.1.1:9200/ --output=http://192.168.1.2:9200/ --all=true
加個--all=true
,input
與output
裡不需要把索引名加上,這樣就可以自動把原機器上的所有索引遷移到目標機器
Elasticsearch-exporter
安裝步驟:
npm install nomnom
npm install colors
npm install elasticsearch-exporter --production
然後執行命令指令碼
node exporter.js -a <source hostname> -b <target hostname> -p <s port> -q <t port> -i <s index> -j <t index>