mongo-connector导入数据到Elasticsearch_涂作权的博客的博客-程序员秘密

当前测试环境下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的管理员权限。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/toto1297488504/article/details/72757625

智能推荐

锋利的Jquery【读书笔记】 -- 第二章 jQuery选择器_CherishLyf的博客-程序员秘密

第二章 jQuery选择器jQuery选择器jQuery选择器是学习jQuery的基础,jQuery的行为规则都必须在获取到元素才生效。 比如:<script> function demo(){ alert("JavaScript demo!"); } </script></head><body> <p onclick="demo()">点击我</p>

Django笔记 生产环境部署 gunicorn+nginx+supervisor_SVALBARDKSY的博客-程序员秘密

1. virtualenv venv34blog -p /usr/bin/python3.4 2. source venv34blog/bin/activet 3. pip—

一天 _a5174的博客-程序员秘密

2004.09.10  来自:CSDN   6:00  习惯性的醒掉拉,外面已经很亮拉,起来上卫生间回头继续睡了,原本想看看英语的,可最近一直都很颓废,今天也继续颓废下去!6:55  洗手间的水花花响,随着门一开一关的撞击声,我知道同事的男朋友已经起床拉,我是与同事还有她男朋友一起住在一套两室一厅的房间里,因为同事男朋友公司离我们住的地方比较远,所以每天都比我们出门要早半个多小时!这个时候我也

kubernetes部署安装(详解and避坑and最新)完整!亲测!_Jeffrey_Zeng_的博客-程序员秘密

**部署规划**准备三台服务器(小编使用的是CentOS 7)192.168.220.24 master192.168.220.25 node1192.168.220.26 node2备注:1~8步为公共步骤1、设置主机名,并重启 &amp;&amp; 时间同步配置 &amp;&amp; 配置ssh节点互信#每台主机设置主机名vi /etc/hosts192.168.220.24 master192.168.220.25 master192.168.220.26 masterreb

DRM应用程序进阶 (atomic-plane)_何小龙的博客-程序员秘密

前言在上一篇《DRM应用程序进阶(atomic-crtc)》文章中,我们学习了如何通过libdrm的atomic接口实现modeseting的操作。本篇,我们将一起来学习如何通过atomic接口,来实现 drmModeSetPlane() 相同的操作。Atomic Commitplane update的atomic操作如下:drmModeAtomicAddProperty(req, pla...

到底什么是幻读,幻读究竟能造成什么问题_刘俊岐.的博客-程序员秘密_幻读有什么影响

首先,为了说明白这个问题,我们先建一个表。create table t( id int NOT NULL, c int DEFAULT NULL, d int DEFAULT NULL, primary key (id), key c(c))engine=innoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25);现在我们执行这样一行语句。select * from

随便推点

2021 FDUCTF解题报告_abcdhhhh_的博客-程序员秘密

比赛链接cryptoBabyRSA小Z学习了RSA算法,但他认为n只需要够大就行了,这合理吗?from Crypto.Util.number import *from secret import flagn=2**1024e=65537m=bytes_to_long(flag)c=pow(m,e,n)print(c)#987101149352846962667271870999743049151973302592726882767520095444948907940118459472

Unity 创建ab包(AssetBundle)_hsiao__fei的博客-程序员秘密

* AssetBundle:简称AB包* 用处:1.ab是一个压缩包:包含模型,贴图,预制体,声音,甚至整个场景,可以在游戏运行的时候加载* 2.它自身保存着互相依赖的关系* 3.压缩包:LZMA和LZ4压缩算法,减少包的体积大小,更快的进行网络传输* 4.把一些可以下载的内容放在AB包里面,可以减少安装包的大小*** ab包:* 1.存在于硬盘上的文件,这个压缩包我们可以认为是一...

NOMA基础知识_biubiubu98的博客-程序员秘密_noma系统

通常, 无线通信网络嵌入无线电接入技术(RAT), 该技术采用多址技术(无线蜂窝系统的一个基本功能)为多个移动终端提供到核心网络的连接。 因此, 根据其基本原理, 多址接入技术可以归类为:正交多址 (OMA) 技术非正交多路访问 (NOMA)技术OMA:OMA允许每个用户通过向每个用户分配不同的正交资源(时间/频率/代码) 块 (RB) 来从所需信号中完全分离不需要的信号。具体例子:频分多址 (FDMA)、 时分多址 (TDMA)、 码分多址 (CDMA) 和正交频分多址 (OFDMA)。N

机械制造与自动化专业学c语言吗,2019机械制造及其自动化专业怎么样、学什么、前景好吗..._Cedric1996的博客-程序员秘密

有关专家介绍说,近年来我国大型工业逐渐在复苏,社会对于精通现代机械设计与管理人才的需求正逐渐增大,像北京交通大机械与电子控制工程院的就业率近几年一直保持在90%以上,生一次就业的结构和地域都非常好。下面是学习啦小编给大家带来的机械制造及其自动化专业怎么样、学什么、前景好吗,供大家参考!1、机械制造及其自动化专业简介本专业学生主要学习机械设计与制造的基础理论,学习微电子技术、计算机技术和信息处理技术...

远程服务器挂载d盘,使用nfs映射远程服务器磁盘目录_城北伯庸的博客-程序员秘密

说明:本文是在MacOS上作客户端,由于MacOS内核是类Unix,因此本文也适用于Linux客户端 由于并非root用户登陆服务器,因此在有些命令须要在前面加上sudo。1、环境介绍NFS服务器:CentOS release 6.7 (Final) 10.151.31.53NFS客户端:MacOS 172.18.166.642、服务器端安装配置一、先用rpm -qa命令查看所需安装包(nfs-u...

推荐文章

热门文章

相关标签