当前测试环境下Elasticsearch版本为2.3。不同版本的mongo-connector、elastic-doc-manager/elastic2-doc-manager所支持的Elasticsearch版本不同,安装时注意版本的选择。

安装mongo-connector

测试机上Python的默认版本为2.6,由于我采用anonacoda作为Python开发环境,Python默认版本2.7。故使用pip2.7而不是pip命令。

# 安装mongo-connector(当前版本为2.3)
./CONDA-HOME/bin/pip2.7 install mongo-connector# elastic2-doc-manager (当前版本为0.1.0)
./CONDA-HOME/bin/pip2.7 install elastic2-doc-manager
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

导入mongodb中的数据到Elasticsearch集群

在安装了monog-connector的机子的命令行中执行下面的命令(该命令为测试时的真实命令)。

mongo-connector --auto-commit-interval=0 -m ip_addr1:27018 -t ip_addr2:9200 -d elastic2_doc_manager -n db.collection
  • 1
  • 1

mongo-connector命令主要参数解析:

-m   mongodb_host:port    —— 数据源地址,mongodb数据库地址。
-t   target_host:port     —— 数据目的地地址,elasticsearch/solr/mongodb集群地址。建议为集群中的协调节点的地址。
-d   xxx_doc_manager      —— 数据目的地的document类型。例如:将mongodb中的数据同步到elasticsearch,使用elastic_doc_manager或elastic2_doc_manager。 将mongodb中的数据同步到solr,使用solr_doc_manager。将mongodb中数据同步到其他mongodb,使用mongo_doc_manager。
-n   db.collection ...    —— 待同步的数据库及其collection。默认同步所有数据库。
-i   filed_name ...       —— 待同步的字段。默认同步所有字段。
-o   mongodb_oplog_position.oplog  —— mongo-connector的oplog。默认在mongo-connector命令执行目录下创建oplog.timestamp文件。建议重新分配存储位置(也可重新分配存储文件名),例如 /opt/mongo-connector.oplog。
--auto-commit-interval    —— 数据同步间隔。默认在不同系统上有不同的值。设置为0表示mongodb中的任何操作立即同步到数据目的地。
--continue-on-error       —— 一条数据同步失败,日志记录该失败操作,继续后续同步操作。默认为中止后续同步操作。其他参数包括设置日志输出行为(时间、间隔、路径等)、设置mongodb登录账户和密码、设置(数据目的地)Http连接的证书等、设置mongo-connector的配置文件

使用mongo-connector同步数据注意事项

1. mongodb必须开启副本集(Replica Set)。开启副本集才会产生oplog,副本拷贝主分片的oplog并通过oplog与主分片进行同步。mongo-connector也是通过oplog进行数据同步,故必须开启副本集。2. 使用mongo-connector命令同步数据时,-m参数中的mongodb地址应该是主/从分片的地址,从该地址登录可以看见并操作local数据库(oplog存储在local.oplog.rs);不能使用mongoos地址。3. 使用mongo-connector命令同步数据时 ,mongo-connector的oplog(参照-o参数)不能随便删除,否则会引起重新同步所有数据的问题。该问题可以通过--no-dump选项关闭。4. 生产环境下建议将mongo-connector配置为系统服务,运行mongo-connector时采用配置文件的方式。

踩过的坑

1. 数据库A中有多个集合(A1, A2, A3),且已开启了副本集(Replica Set),但是集合A1可以同步,集合A2不能同步.原因:oplog中有A1的操作记录,没有A2的操作记录。结论:开启副本集(Replica Set)并不能保证一定能同步,oplog中必须包含待同步集合的操作记录,才能通过mongo-connector同步到Elasticsearch集群。2. mongodb3.x版本加强了安全机制,导致了在只拥有某个库的权限时不能同步数据的问题。原因:拥有某个库的权限,并不能拥有oplog的读取权限,而mongo-connector需要读取oplog的权限。 结论:同步数据至少需要能够读取oplog的权限,确保当前mongodb用户的权限能够操作oplog,或者直接使用mongodb的管理员权限。

mongo-connector导入数据到Elasticsearch相关推荐

  1. python批量导入网页信息_python批量导入数据进Elasticsearch的实例

    ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...

  2. JAVA 导入数据到Elasticsearch中

    导入数据到Elasticsearch中 文章目录 导入数据到Elasticsearch中 前言 写入的几种方案 具体操作 实现 版本: 测试 es入门使用 es索引使用 es分词使用 es聚合使用 j ...

  3. logstash导入数据到Elasticsearch踩过的坑详解

    一.前言 这篇主要记录在导入数据时候踩到的坑,这些坑总共花费我小一天的时间,记录一下. 二.正文 1.logstash显示在导入数据,ES也成功新建了索引,但是没数据 最开始遇到的是这个坑,logst ...

  4. windows下用elasticdump导入json数据到Elasticsearch中

    一.前言 ES的备份,导入和导出相对而言比较麻烦.用logstash的话,经常会出现很多错误,而且不是很方便.用bulk也是一样的,对于咱们的json文件的结构,一些字段名都有要求,也不方便.后来和大 ...

  5. 导入json数据到Elasticsearch(bulk方法)

    一.前言 在前面几章,基本把本地的环境给配置好了,那么配置好了之后,要做的第一件事当然就是导入数据进去.我这边准备的是一份json数据,这里通过ES的bulk API给导入进去. 二.导入数据 1.批 ...

  6. 【技术实验】表格存储Tablestore准实时同步数据到Elasticsearch

    实验背景 图书馆Q是一家大型图书馆,图书馆藏书众多,纸质图书600多万册,电子图书7000多万册,总数有八千多万册,这些图书之前都是人工检索维护的,现在需要做一个系统来存储管理这些图书信息. 需求如下 ...

  7. Elastic:如何摄入 Websocket 数据到 Elasticsearch

    Elasticsearch 是一个分布式的 RESTful 搜索和分析引擎,能够解决越来越多的用例. 作为Elastic Stack 的核心,它集中存储你的数据,以实现闪电般的快速搜索,微调的相关性以 ...

  8. linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  9. Elasticsearch —— bulk批量导入数据

    在使用Elasticsearch的时候,一定会遇到这种场景--希望批量的导入数据,而不是一条一条的手动导入.那么此时,就一定会需要bulk命令! 更多内容参考我整理的Elk教程 bulk批量导入 批量 ...

最新文章

  1. python使用matplotlib可视化线图(line plot)、并自定义设置可视化图像线条的类型(specify the line style of a plot in matplotlib)
  2. POJ1018贪心(多路归并的想法)
  3. RS233通信协议与osi七层模型中的物理层,数据链路层的对比
  4. BugKuCTF 杂项 telnet
  5. 备战美赛,这些你应该知道的知识点
  6. C++工作笔记-对容器模板的初步认识
  7. 安装GD 完美解决make error
  8. Sublime一些问题以及解决方法
  9. Mac如何修复“无法卸载磁盘”错误
  10. IE浏览器中用Firebug调试网站的方法
  11. CF1042F Leaf Sets
  12. 经典算法分析:n与lgn
  13. 最强大脑记忆曲线(7)——“复习页面”逻辑实现
  14. ubuntu18.04(Jetson)以及火狐浏览器设置终端代理和清除代理命令
  15. 鼠标移入以及移出时图标背景透明效果
  16. 华为静态路由及默认路由的配置
  17. cocos creator接入微信登陆sdk ios篇
  18. 【毕业设计】单片机家用燃气的可视化实时监控报警仪 - 物联网 嵌入式 stm32
  19. 谷歌地图中给infowindow添加点击事件
  20. linux怎么在目录下查找文件,linux find-在指定目录下查找文件

热门文章

  1. 电气:6机30节点经济调度(考虑负荷平衡和线路容量,不考虑斜坡)代码实现
  2. wxWidgets:添加菜单栏
  3. wxWidgets:wxGraphicsRenderer类用法
  4. BOOST_VMD_ASSERT_IS_IDENTIFIER宏相关的测试程序
  5. boost::outcome模块outcome相关的测试程序
  6. boost::log模块测量日志记录发射的性能
  7. boost::intrusive::circular_list_algorithms用法的测试程序
  8. boost::graph模块实现DFS parenthesis的测试程序
  9. boost::foreach模块右值 const_r的测试程序
  10. GDCM:基本应用程序级别机密性配置文件测试程序