离线安装elasticdump导出elasticsearch数据

这篇具有很好参考价值的文章主要介绍了离线安装elasticdump导出elasticsearch数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:

项目需要导出知识库博客文章数据,格式为json;
知识库系统部署在内网,没有node和elasticdump数据导出工具,需要离线安装node和elasticdump,方法是找一台与内网配置一样的外网机器在线安装node和elasticdump环境,再把安装包导入内网安装。
备注:使用的机器是x86+银行麒麟V4桌面版操作系统

导出步骤:

一、外网安装node环境

 # 1.下载node安装包,命令行或网页下载,我下载的是V16版本,使用elasticdump尽量安装10版本以上的:
 wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.gz
 # 2. 把压缩包移动到安装路径下(注意:不要先解压,否则一些命令链接会失效),进入目录下解压,
 # 我的安装路径是/usr/lib,也可以放到其他目录下
 mv  node-v16.14.2-linux-x64.tar.gz /usr/lib
 cd  /usr/lib
 tar -xzvf node-v16.14.2-linux-x64.tar.gz
 # 3. 建立命令的软连接,就是文件的快捷方式,把这个快捷方式发送到/usr/local/bin
 #(有的系统放/usr/bin);
 ln -s /usr/lib/node-v16.14.2-linux-x64/bin/node /usr/local/bin
 ln -s /usr/lib/node-v16.14.2-linux-x64/bin/npm /usr/local/bin
 # 4. 检测环境,不出意外会看到版本信息,如果报错,检测安装过程,重新安装:
	node -v
	npm -v

二、外网安装elasticdump

 # 1.使用npm命令安装elasticdump :
 npm install elasticdump -g
 # 2. 建立elasticdump命令软链接
 ln -s /usr/lib/node-v16.14.2-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/local/bin/elasticdump
 # 3. 检测环境,安装成功,会看到elasticdump帮助信息,导出数据时需要查看这些帮助参数的用法:
 elasticdump --help	

三、内网离线安装node和elasticdump

在线安装成功后,把node的安装包和elasticdump安装后的缓存打包导入内网,进行安装,
以下是导出缓存和离线安装步骤:

  • 导出缓存包
 # 1. 查看npm缓存路径,我的是/root/.npm
 npm config get cache
 # 2.把elasticdump安装后的缓存目录打包
 cd /root
 tar -cf npm-cache.tar .npm 

打包完成后在/root目录下生成npm-cache.tar文件
把在线下载的node-v16.14.2-linux-x64.tar.gz 和 npm-cache.tar

  • 离线安装node和elasticdump
 # 1.参见外网步骤安装node,安装完的目录为:/usr/lib/node-v16.14.2-linux-x64
 # 2.拷贝npm-cache.tar到/root,并解压缩
 mv npm-cache.tar /root
 cd /root
 tar -xvf npm-cache.tar
 
 # 3.先进入/usr/lib/node-v16.14.2-linux-x64/bin安装elasticdump
 cd /usr/lib/node-v16.14.2-linux-x64/bin
 # --cache-min这个参数是指超过多少分钟,才去网络下载,设置足够大就会从缓存安装
 npm install --cache /root/.npm --optional --cache-min 9999999 -shrinkwarp false elasticdump  
 # 4.创建软连接
 ln -s /usr/lib/node-v16.14.2-linux-x64/lib/node_modules/elasticdump/bin/elasticdump /usr/local/bin/elasticdump 
 # 5. 检测环境,安装成功,会看到elasticdump帮助信息,导出数据时需要查看这些帮助参数的用法:
 elasticdump --help	

四、elasticdump导出数据示例

  • elasticsearch常用查询语句,地址粘贴到浏览器查看,若在终端使用curl命令
>  1.查询elasticsearch 语句查看现有es index doc数量: 
>  http://ip:9200/_cat/indices?v
> 
> 2.查询某个index下文章数量
> http://ip:9200/_cat/count/index_name?v
> 
> 3.查看索引mapping:
>  http://ip:9200/索引名称/_mapping?pretty
> 
> 4.按某字段搜索,其中attach_type是字段名称,mp4是字段值:
> http://ip:9200/索引名称/_search?q=attach_type:mp4(搜索类型为MP4的doc)
> 
> 5.控制返回数据的数量
>  http://ip:9200/索引名称/_search?size=2
>  
> 6.按id搜索doc:
>  http://ip:9200/索引名称/_doc/#id值
  • elasticdump导出语句(以下示例若在终端不能正常运行,可能是含有中文字符,空格\等特殊字符删除后重新手动输入一遍)

基本的导入导出,可通过终端elasticdump --help查看

1.从一个 elasticsearch导入到另一个 elasticsearch

1)mapping导入

elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=mapping
  2)data导入
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=data

2.导出成json文件

1)按create_time字段的时间范围筛选数据并导出json,并按该字段倒序排列
term 是要筛选的字段和值,这里针对有id字段的数据,type替换为id,把blog替换为id值,可以筛选出唯一的数据

elasticdump --input=http://192.168.8.9:9200/all_prod_v8_main \
--output=/opt/data/data_1000_20230524.json \
--type=data \
--searchBody='{"query":{"bool":{"must":[{"term":{"type":"blog"}},{"range":{"create_time":{"gte":"2020-01-01","lt":"2022-02-01"}}}],"must_not":[],"should":[]}},"sort":[{"create_time":{"order":"desc"}}],"aggs":{}}'

2)控制导出数据的数量,导出10000条数据

elasticdump --input=http://192.168.8.9:9200/all_prod_v8_main \
--output=/opt/data/data_10000_20230524.json \
--type=data \
--size=10000 \
--searchBody='{"query":{"bool":{"must":[{"term":{"type":"blog"}}],"must_not":[],"should":[]}},"sort":[{"create_time":{"order":"desc"}}],"aggs":{}}'

3)全部导出,依据文件大小进行自动分隔(也可依据行数进行分割–maxRows),20Mb左右一个文件,导出过程自动把文件进行分割,

#–limit 每次请求数据的数量,默认100,要导出的数据量大时,此值改大提高效率
#–fileSize(–maxRows):对导出的数据按文件大小或按行数分割成多个文件
#–overwrite 存储路径文件存在进行覆盖
#-- 更多参数终端输入elasticdump --help查看

elasticdump --input=http://192.168.8.9:9200/all_prod_v8_main \
--output=/opt/data/20Mb/data_20mb_20230524.json \
--type=data \
--limit=1000 \
--fileSize=20mb \
--overwrite=true \
--searchBody='{"query":{"bool":{"must":[{"term":{"type":"blog"}}],"must_not":[],"should":[]}},"sort":[{"create_time":{"order":"desc"}}],"aggs":{}}'

文章参考:
https://blog.csdn.net/su8888i/article/details/130287754文章来源地址https://www.toymoban.com/news/detail-778725.html

到了这里,关于离线安装elasticdump导出elasticsearch数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch数据迁移之elasticdump

    第一章 es集群搭建 第二章 es集群基本操作命令 第三章 es基于search-guard插件实现加密认证 第四章 es常用插件 在企业实际生产环境中,避免不了要对es集群进行迁移、数据备份与恢复,以此来确保数据的可用性及完整性。因此,就涉及到了数据备份与恢复。本章主要以elasticdump工

    2024年04月27日
    浏览(23)
  • 基于Node.js的后台管理系统的数据表格导出下载

    今天在工作的时候接触到一个需求,就是现在有一个简单的后台管理系统是基于node.js来实现的,现在需要将其中的一个表格数据下载下来。乍一听还以为这个是一个简单的需求,以为只要简单的一个小时就能完成,没有想到直接花了我将近两个半小时并且还是在他人的帮助下

    2024年02月13日
    浏览(42)
  • elasticsearch-dump 迁移es数据 (elasticdump)

    elasticsearch部分查询语句 # 获取集群的节点列表: curl ‘localhost:9200/_cat/nodesv’ curl ‘localhost:9200/_cat/indicesv’ 创建一个名为“customer”的索引,然后再查看所有的索引: curl -X PUT ‘localhost:9200/customerpretty’ curl ‘localhost:9200/_cat/indicesv’ 参考链接:https://blog.csdn.net/pilihaotian/ar

    2023年04月08日
    浏览(34)
  • Node.js - fs模块、path模块、http模块、Node.js模块化(ECMAScript标准的导出和导入)、包、npm包的管理和安装依赖、nodemon

    什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码? Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来 编写服务器后端的应用程序 在** 传统Web开发中,浏览器就是JavaScript的运行时环境 **, 因为它提供了

    2024年02月02日
    浏览(43)
  • Node.js模块的导出

    在Node.js中, module.exports 和 exports 是两种导出模块的方式,它们的作用是使得模块中的内容可以被其他模块引用和使用。 module.exports : module.exports 是一个指向当前模块所导出内容的对象的引用。你可以通过给 module.exports 赋值来导出一个对象、函数、类或者任何其他的JavaScrip

    2024年04月14日
    浏览(35)
  • 离线安装vscode插件,导出 Visual Studio Code 的扩展应用,并离线安装

    在没有网络的情况下,如何安装vscode插件 1.使用之前电脑安装过的插件包 Visual Studio Code 的扩展应用安装位置在文件夹 .vscode/extensions 下。不同平台,它位于: Windows %USERPROFILE%.vscodeextensions Mac ~/.vscode/extensions Linux ~/.vscode/extensions 离线使用时,直接复制粘贴即可。 如windows系统

    2024年02月13日
    浏览(47)
  • elasticsearch备份恢复,elasticdump使用

    准备环境 1. 将node-v10.23.1-linux-x64.tar.xz上传到服务器/usr/local目录下 2. tar xf node-v10.23.1-linux-x64.tar.xz 3. 将node_modules.tar.gz上传到服务器/usr/local目录 4. tar -zxvf node_modules.tar.gz 5. 设置NODE环境   5.1 vim /etc/profile     export NODEJS_HOME=/usr/local/node-v10.23.1-linux-x64     export PATH=$NODEJS_HOME/bin:

    2024年01月19日
    浏览(25)
  • Elasticsearch备份与还原:使用elasticdump

    在数据管理的世界里,备份和还原数据是重中之重的日常工作,特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复,还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中,我们将会重点介绍如何使用一个非常实用的工具——e

    2024年02月04日
    浏览(36)
  • 在Node.js中,什么是模块(module)?如何导入和导出模块?

    聚沙成塔·每天进步一点点 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而

    2024年02月05日
    浏览(33)
  • Node.js @zurmokeeper/exceljs 如何快速导出多表头的excel文件

    Node.js 如何快速导出嵌套列(多表头)的excel文件。效果图如下: 1:使用 @zurmokeeper/exceljs, V4.4.1以上 安装: npm i @zurmokeeper/exceljs 2: 有一个 worksheet.makeColumns 方法,API文档: 代码示例:

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包