elasticdump安装_elasticsearch导出、导入工具-elasticdump
elasticsearch導出、導入工具-elasticdump
elasticsearch 數據導入到本地,或本地數據導入到elasticsearch中,或集群間的數據遷移,可以用elasticsearch的工具—elasticdump
elasticdump 可以用用npm安裝本地運行,也可以用docker容器運行。在這里我說一下npm安裝本地運行、docker運行可以參考github文章。
npm 安裝 elasticdump
先下載安裝npm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19# 以下我盡量都用絕對路徑吧。 發(fā)現好多文章里的路徑寫的不清晰......
cd /home/shining
wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz
tar -xf node-v8.11.2-linux-x64.tar.xz
cd /home/shining/node-v8.11.2-linux-x64/bin
ln -s /home/shining/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm
ln -s /home/shining/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node
# 安裝 elasticdump
./npm init -f
./npm install elasticdump
# 如果你需要全局安裝的話就添加 -g 參數, 我這里沒有配置全局。
cd /home/shining/node-v8.11.2-linux-x64/bin/node_modules/elasticdump/bin
./elasticdump --help
# 這樣 elasticdump 就安裝好了
導出數據, 他在他的官網中已經介紹的很詳細了, es導出到es,es導出到文件,導出數據直接壓縮等方式。
主要記住的是, 導出的時候不僅僅的data,還需要導出mapping信息。
導出數據到文件:1
2
3
4
5
6
7
8elasticdump \
--input=http://172.16.3.5:9200/shining_index \
--output=/data/shining_index_mapping.json \
--type=mapping
elasticdump \
--input=http://172.16.3.5:9200/shining_index \
--output=/data/shining_index.json \
--type=data
這樣的話數據和mapping信息就都導出來了。
For Example:
1
2
3
4
5
6
7
8
9
10
11
12
13導出Mapping信息
elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://10.10.20.164:9200/xmonitor-2015.04.29 --output=http://192.168.100.72:9200/xmonitor-prd-2015.04.29 --type=mapping
導出數據
elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://10.10.20.164:9200/xmonitor-2015.04.28 --output=/usr/local/esdump/node-v0.12.2-linux-x64/data/xmonitor-prd-2015.04.28.json --type=data
導出數據到本地集群
elasticdump --ignore-errors=true --scrollTime=120m --bulk=true --input=http://10.10.20.164:9200/xmonitor-2015.04.29 --output=http://192.168.100.72:9200/xmonitor-prd-2015.04.29 --type=data
遷移mapping
./elasticdump --input=http://10.214.228.44:9200/ehruserindex --output=http://10.214.226.64:9200/ehruserindex --type=mapping
遷移數據
./elasticdump --input=http://10.214.228.44:9200/ehruserindex --output=http://10.214.226.64:9200/ehruserindex --limit=10000 --type=data
導入數據
正常導入數據是:
1elasticdump --input /data/shining_index.json --output http://172.16.3.5:9200/shining_index
如果你得ES集群配置用有配置: action.auto_create_index 參數為 false 或 為 +aaa,-bbb,’+’號意味著允許創(chuàng)建aaa開頭的索引,’-‘號意味著不允許創(chuàng)建bbb開頭的索引 有規(guī)則的話(詳細可以查看這個參數的說明和配置), 會導致導入失敗。
這時候需要先創(chuàng)建索引和mappping之后再導入數據。
先編輯一下我們導出來的mapping.json文件
1
2
3
4
5
6
7
8
9vim /data/shining_index_mapping.json
數據類似于:
{"shining_index":{"mappings":{"logs".............}}}}}
需要保留 mappings 之后的信息
類似于:
{"mappings":{"logs".............}}}}
刪除 {"shining_index": 和 最后一個 }
創(chuàng)建索引
1curl -X PUT 'http://172.16.3.5:9200/shining_index' -d@/data/shining_index_mapping.json
創(chuàng)建成功之后再導入數據就可以了。就不會報錯了。
總結
以上是生活随笔為你收集整理的elasticdump安装_elasticsearch导出、导入工具-elasticdump的全部內容,希望文章能夠幫你解決所遇到的問題。