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# 以下我尽量都用绝对路径吧。 发现好多文章里的路径写的不清晰......
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,’+’号意味着允许创建aaa开头的索引,’-‘号意味着不允许创建bbb开头的索引 有规则的话(详细可以查看这个参数的说明和配置), 会导致导入失败。
这时候需要先创建索引和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": 和 最后一个 }
创建索引
1curl -X PUT 'http://172.16.3.5:9200/shining_index' -d@/data/shining_index_mapping.json
创建成功之后再导入数据就可以了。就不会报错了。
总结
以上是生活随笔为你收集整理的elasticdump安装_elasticsearch导出、导入工具-elasticdump的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 透镜多少钱啊?
- 下一篇: dom vue 加载完 执行_前端面试题