ElasticSearch6.x 7.x Elasticdump 在线安装、离线安装
  aooFr2LFWesC 2023年11月02日 65 0


官网:elasticdump - npm

ElasticDump是一个ElasticSearch的数据导入导出开源工具包,方便使用。

官方地址:官方地址:https://github.com/taskrabbit/elasticsearch-dump

一. 安装npm,node

# 下载安装包
wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz

# 解压
xz -d node-v10.13.0-linux-x64.tar.xz 

tar xvf node-v10.13.0-linux-x64.tar

# 建立文件软连接到系统命令
ln -s /root/node-v10.13.0-linux-x64/bin/node /usr/bin/node
ln -s /root/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm

# 检查是否安装成功
node -v
npm -v

二. 安装elasticdump

2.1 在线安装

# 安装
npm install elasticdump -g

# 建立文件软连接到系统命令
ln -s /root/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump

# 验证
elasticdump --help

2.2 离线安装

在同样的系统版本有网络的服务器下生成模块elasticdump缓存(安装同上2.1)

2.2.1 模块缓存导出

# 查看缓存目录位置  npm config get cache
cd /root/.npm/
# 压缩缓存,并拷贝到待安装机器
tar -cf npm-cache.tar .npm

2.2.2 模块缓存导入安装

# 解压
tar -xvf npm-cache.tar
# 进入node下的lib目录执行安装命令
cd /root/node-v10.13.0-linux-x64/lib
npm install --cache /root/.npm --optional --cache-min 99999999999 --shrinkwrap false elasticdump
# 建立文件软连接到系统命令,如果elasticdump不在这个目录下,可以使用一下命令查找find / -name 'elasticdump'
ln -s /root/node-v10.13.0-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/bin/elasticdump
# 验证
elasticdump --help

三. 数据备份,还原,迁移

# 备份
elasticdump --input=http://192.168.1.2:9200/test --output=/opt/esdump/test.json
# 支持星号匹配,以test开头的所有索引数据导出到test.json文件
elasticdump --input=http://192.168.1.2:9200/test* --output=/opt/esdump/test.json

# 还原
./elasticdump --input=/opt/esdump/test.json --output=http://192.168.1.3:9200/test

# 还原,不需要指定索引自动插入
./elasticdump --input=/opt/esdump/test.json --output=http://192.168.1.3:9200


# 迁移
./elasticdump --input=http://192.168.1.2:9200/test --output=http:/192.168.1.3:9200/test

# 带账号密码的数据迁移
./elasticdump --input=http://username:password@192.168.1.2:9200/test --output=http://username@password@192.168.1.3:9200/test

# 导出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

# 根据查询条件导出
 nohup elasticdump --ignore-errors=true  --scrollTime=120m  --bulk=true --input=http://10.248.161.31:9200/ams_data  --output=/usr/elasticsearch/output_datas_data_week0708_0714.json --type=data --searchBody '{"query":{"bool":{"must":{"range":{"created_at":{"from":"2017-07-08 00:00:00","to":"2017-07-14 23:59:59","format":"yyyy-MM-dd HH:mm:ss","include_lower":true,"include_upper":true}}}}}}' >/usr/elasticsearch/output_data/result5.log &

注意:第一条命令先将索引的settings先迁移,如果直接迁移mapping或者data将失去原有集群中索引的配置信息如分片数量和副本数量等,当然也可以直接在目标集群中将索引创建完毕后再同步mapping与data。

elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=settings
elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=mapping
elasticdump --input=http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=data

参数说明:

--limit 10000         每次查询导出数据大小,可以提升导出性能,不设置默认为100

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
aooFr2LFWesC