源于项目需要,把mongo的数据同步到elasticsearch(后面简称ES)。让ES作检索。通过研究终于实现.具体如下步骤:
A.mongo副本集配置
本文配置使用数据库版本:3.0.5 64位版
1. 拷贝三分mongodb(bin文件夹及其子目录)到服务器下,目录依次为:
D:\mongo_db\mongo_master /*当前目录的Mongo做主库:localhost:27311*/
D:\mongo_db\mongo_slave /*当前目录的Mongo做从库:localhost:27321*/
D:\mongo_db\mongo_arbiter /*当前目录的Mongo做仲裁服务器:localhost:27331*/
2.主/从/仲裁创建文件目录如下:
D:\mongo_db\mongo_master\data\db
D:\mongo_db\mongo_master\data\log
D:\mongo_db\mongo_slave\data\db
D:\mongo_db\mongo_slave\data\log
D:\mongo_db\mongo_arbiter\data\db
D:\mongo_db\mongo_arbiter\data\log
3.创建主库数据库服务:
cd D:\mongo_db\mongo_master\bin
执行命令:
mongod --replSet shard1 --port 27311 --logpath "D:\mongo_db\mongo_master\data\log\MongoDB.log" --logappend --dbpath "D:\mongo_db\mongo_master\data\db" --serviceName "mongo_master" --serviceDisplayName "mongo_master" --install
4.创建从库数据库服务:
cd D:\mongo_db\mongo_slave\bin
执行命令:
mongod --replSet shard1 --port 27321 --logpath "D:\mongo_db\mongo_slave\data\log\MongoDB.log" --logappend --dbpath "D:\mongo_db\mongo_slave\data\db" --serviceName "mongo_slaver" --serviceDisplayName "mongo_slaver" --install
5.创建仲裁库服务:
cd D:\mongo_db\mongo_arbiter\bin
mongod --replSet shard1 --port 27331 --logpath "D:\mongo_db\mongo_arbiter\data\log\MongoDB.log" --logappend --dbpath "D:\mongo_db\mongo_arbiter\data\db" --serviceName "mongo_arbiter" --serviceDisplayName "mongo_arbiter" --install
6.启动主/从/仲裁
在cmd控制台输入:
net start mongo_master
net start mongo_slaver
net start mongo_arbiter
7.登录主库:
cd D:\mongo_db\mongo_slave\bin
mongo localhost:27311
>use admin
>cfg={_id:"shard1",members:[{_id:0,host:"localhost:27311",priority:1},{_id:1,host:"localhost:27321",priority:1},{_id:2,host:"localhost:27331",arbiterOnly:true}]}
>rs.initiate(cfg)
>rs.status()//此命令验证添加副本集成功
如下:
至此 mongo副本集配置完成。
B.安装python
安装python-3.5.3-amd64.exe
安装mongo-connector命令: pip install elastic-doc-manager[elastic2]
C.安装:ElasticSearch
D:\software\elasticsearch-2.4.0
并启动ElasticSearch:双击:D:\software\elasticsearch-2.4.0\bin\elasticsearch.bat
E.启动mongo-connector:
mongo-connector --auto-commit-interval=0 -m localhost:27311 -t localhost:9200 -d elastic2_doc_manager
F: 登录主库创建一条数据:
>use person
>db.person.insert({"name":"jack","age":30})
>db.person.find() //查看是否保存成功
G:在浏览器地址栏输入:http://localhost:9200/_cat/indices?v 可以看到index列下已经有了person。则证明已经同步到ES.
H: 登录mongo从库:
D:\mongo_db\mongo_slave\bin>mongo localhost:27321 MongoDB shell version: 3.0.5 connecting to: localhost:27321/test shard1:SECONDARY> use person switched to db person shard1:SECONDARY> db.person.find() Error: error: { "$err" : "not master and slaveOk=false", "code" : 13435 } shard1:SECONDARY> rs.slaveOk(); shard1:SECONDARY> db.person.find() { "_id" : ObjectId("598417b9017cd7642360634d"), "name" : "Johon", "age" : "30" }
I:全过程完毕。
相关推荐
Mongo-Connector是一个强大的工具,用于将MongoDB的数据同步到其他数据存储系统,如Elasticsearch或Solr。在本案例中,我们关注的是版本2.3.0,它专为pyspark2.3.0和Scala2.11构建。这个版本确保了与特定Spark和...
`mongo-connector` 正是为了解决这个问题,它允许用户将 MongoDB 与支持事务的其他数据库(如 Elasticsearch、Amazon DynamoDB 或者其他的 NoSQL 数据库)进行连接,从而实现数据的实时同步。 `mongo-connector` ...
系统总览mongo-connector创建从MongoDB集群到一个或多个目标系统(例如Solr,Elasticsearch或另一个MongoDB集群)的管道。 它将MongoDB中的数据同步到目标,然后尾随MongoDB oplog,实时跟踪MongoDB中的操作。 上...
mongo-connector工具创建一个从MongoDB簇到一个或多个目标系统的管道,目标系统包括:Solr,Elasticsearch,或MongoDB簇。 该工具在MongoDB与目标系统间同步数据,并跟踪MongoDB的oplog,保持操作与MongoDB的实时...
`elastic2-doc-manager`是Mongo-Connector的一个插件,专门用于将MongoDB的数据同步到Elasticsearch 2.x。这个插件实现了将MongoDB文档转换为Elasticsearch兼容的JSON格式,并通过HTTP接口将它们推送到Elasticsearch...
MongoDB到Elasticsearch连接器 安装 npm i -g mongo-es 用法 命令行 # normal mode mongo-es ./config.json # debug mode, with debug info printed NODE_ENV=dev mongo-es ./config.json 以编程方式 const fs = ...
Windows环境下实现MongoDB与Elasticsearch数据自动同步是大数据和搜索领域经常需要进行的操作,可以帮助用户实时将数据库中的数据变化同步到搜索引擎中,以便快速检索。本文介绍如何使用Python 2.7.14,MongoDB ...
用于节点的MongoDB和ElasticSearch同步模块(支持附件同步) 支持一对一和一对多关系。 中文文档- 一对一-一个mongodb集合到一个elasticsearch索引 一对多-一个mongodb集合到一台Elasticsearch服务器的多个索引...
Docker撰写文件 一些典型的docker撰写示例。 ...启动mongo(作为集群)和elasticsearch,使用mongo-connector将数据从mongo同步到elasticsearch。 启动1个mongo实例和一个mongo-express Web工具进
它通过映射MongoDB的数据结构到Elasticsearch的文档结构,实现数据的转换。例如,MongoDB中的文档(JSON格式)可以被转换为Elasticsearch中的文档,同时保留原有的字段和值。这涉及到数据类型转换和结构化处理,例如...
一个go守护进程,它将mongodb实时同步到elasticsearch 版本6 此版本的monstache是为MongoDB 3.6+和Elasticsearch 7.0+设计的。 它使用了官方的MongoDB golang驱动程序和来自Olivere的社区支持的Elasticsearch...