安装和配置mongo-connector elastic2-doc-manager为Mongodb Elasticsearch - windows/centos

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

把数据从Mongo同步到Elasticsearch,实现全文快速检索
环境: centos7, 
mongodb v3.4.9python2.7,

安装: pip,mongo-connector,elastic2-doc-manager, Elasticsearch v5.6.4

1. 安装mongo-connector

//首先安装python和pip

http://blog.csdn.net/liuchunming033/article/details/39578019

python get-pip.py  
pip安装的时候还可以使用安装选项进行安装,比如指定get-pip.py所在的位置:
python get-pip.py --no-index --find-links=c:\downloads

//centos安装pip

sudo yum install python-pip

//安装mongo-connector*

https://github.com/mongodb-labs/mongo-connector

https://github.com/mongodb-labs/mongo-connector/wiki/Installation

//mongodb-labs/elastic2-doc-manager

https://github.com/mongodb-labs/elastic2-doc-manager

//windows安装命令

//centos安装pip

sudo pip install mongo-connector[elastic5]

//如果在内网的话,可能有防火墙,要配置代理

pip install --proxy http://ip:port --index http://mirrors.aliyun.com/pypi/simple/ mongo-connector[elastic5] --trusted-host mirrors.aliyun.com

sudo pip install elastic2-doc-manager[elastic5]

pip install --proxy http://ip:port --index http://mirrors.aliyun.com/pypi/simple/ elastic2-doc-manager[elastic5] --trusted-host mirrors.aliyun.com

2, 安装Elasticsearch

官网下载https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-4

解压缩即可,解压完后可以把相关命令链接到方便/usr/bin/目录下,之后直接引用就可以

sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch  /usr/bin/elasticsearch
sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch.in.sh  /usr/bin/elasticsearch.in.sh
sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch-keystore  /usr/bin/elasticsearch-keystore
sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch-plugin  /usr/bin/elasticsearch-plugin
sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch-translog  /usr/bin/elasticsearch-translog
sudo ln -s /usr/local/elasticsearch-5.6.4/bin/elasticsearch-systemd-pre-exec  /usr/bin/elasticsearch-systemd-pre-exec


导入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

-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的管理员权限。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值