简介
mongo到elasticsearch最早的工具是river。但是后期由于不维护,被mongo-connector取代。
由于mongo这样的数据库没有触发器,因此无法像mysql那样直接同步。mongo-connector的作者采用了replicaSet,在副本集从primary同步数据的时候,通过oplog来知道有哪些新插入的数据,最后同步到elasticsearch。因此,同步有一定的延迟性。
服务器运行环境为debian8, x64版。由于mongo与elasticsearch均是吃内存的大户,请保证服务器内存大于8G。
elasticsearch版本是5.1.1, mongo版本2.4.10。elasticserach此版本要求JDK8.
配置部分除非必要,都采用默认的配置。
mongo-server的配置
mongo-server的安装:
sudo apt-get install mongodb-server
配置/etc/mongodb.conf文件
添加如下字段
replSet=shard1
然后在终端里运行
sudo service mongodb restart
完成后进入mongo-shell,创建用户名和密码:
use admin
db.addUser(username, password)
再修改一次/etc/mongodb.conf文件,设置为需要帐号密码登录模式:
auth = true
重启机器:
sudo service mongodb restart
elsticserach的配置
解压的elasticsearch.zip压缩包,放入制定目录,进入elasticsearch的bin目录。直接运行
./elasticsearch -d
mongo-connector的配置
首先安装mongo-connector
pip install mongo-connector
因为elasticsearch版本的缘故,还需要安装对应的doc manager:
pip install 'mongo-connector[elastic5]'
完成后按照文档同步数据库, :
mongo-connector -m localhost:27017 -t localhost:9200 -d elastic2_doc_manager --admin-username username --password password
这里需要注意,由于版本的不同,使用的是elastic2_doc_manager。而不是elastic_doc_manager
连接es, 就能看到有新的索引创建好并同步了数据
网友评论