一、环境要求
要使用elasticdump就必须要先安装了ElasticSearch 和node环境
安装步骤可以参考我另一篇文章:
在实际生产中,可能因为出于安全考虑,未开放es-head的9100端口和kibana的5601端口,这时导入导出es的数据就可以用elasticdump实现
1、通过缓存离线安装elasticdump
同样先安装node环境,然后在一台可以联网的服务器上下载elasticdump
npm install elasticdump -g
#验证安装成功
elasticdump --help
#查看缓存目录位置
npm config get cache
#一般是在/root/.npm
#将缓存目录打包
tar -czf npm-cache.tgz /root/.npm/
然后将npm-cache.tgz 放到需要离线安装的服务器上
#解压(跟之前打包时路径相同位置)
tar -zxf npm-cache.tgz
#进入node目录的lib目录下执行
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
#验证安装
elasticdump --help
2、导出mapping
elasticdump --input=http://localhost:9200/dataworks --output=/root/dataworks_mapping.json --type=mapping
3、导出data
elasticdump --input=http://localhost:9200/dataworks --output=/root/dataworks_mapping.json --type=data
4、导入mapping
elasticdump --input=/root/dataworks_mapping.json --output=http://localhost:9200/dataworks --type=mapping
5、导入data
elasticdump --input=/root/dataworks_mapping.json --output=http://localhost:9200/dataworks --type=data