MongoDB与Elasticsearch达到数据同步的一点尝试

  1.首先要搭建MongoDB的集群环境(可以参考的个人博客:http://blog.csdn.net/xuguokun1986)

  2.比较关键的一点是安装MongoDB和Elasticsear向关联的一个插件,插件的安装方法是(操作目录是集群环境         的master节点的/home/bms/mongodb-3.0.5/bin目录):

./plugin --install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.9 

注意:

1)运行上述命令的时候,要保证机器连接互联网。

 2)根据官网提示,mongodb与elasticsearch是配合使用是是有版本要求的,如下图所示:

 3)我用的mnogodb的版本是3.0.5,elasticsearch的版本是1.7.1,和上面的版本不是很对应,但是能进行                         测试。

 3.操纵Elastcisearch创建和Mongodb的联合索引,在Elasticsearch的bin目录下进行输入下列命令:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
      
      
curl -XPUT "192.168.100.103:9200/_river/mongodb/_meta" -d '
{
"type": "mongodb",
"mongodb": {
"host": "192.168.100.103",
"port": "10111",
"db": "mydb",
"collection":"users",
"options":{
"include_fields":["_id","is_show","start_time"]
}
},
"index": {
"name": "myindex",
"type": "users"}
}'

4.在Mongodb上做如下操做:

1)在master节点(192.168.100.103)对数据库进行操,创建数据库(mydb),创建数据库的命令是:use                     mydb。

 2)编写代码在mydb数据库中添加一个Collection(相当于结构化数据库的数据库表)users,创建的代码如下:        

 1
 2
 3
 4
 5
 6
 7
      
      
Mongo mongo = new Mongo("192.168.100.103", 10111);
//连接名为xiaodb的数据库,假如数据库不存在的话,mongodb会自动建立
DB db = mongo.getDB("mydb");
//创建Collection,但是不添加数据
db.createCollection("users", null);

 3)接着向mydb中插入数据,插入的代码如下:

 DBCollection dbColl = db.getCollection("users");//获取Collection

 //组织待插入的数据

 DBObject data3 = new BasicDBObject();
 data3.put("_id",123);
 data3.put("cust_Id", "1111111");
 data3.put("is_Show", 12); 
 data3.put("start_time", new Date()); 
 dbColl.insert(data3);

 4)在monogdb端验证数据是否插入mydb的users中。

 DBObject fields = new BasicDBObject(); 
 fields.put("_id", false); 
 fields.put("is_Show", true); 
 fields.put("start_time", true);

 DBCursor cur = dbColl.find();
 while(cur.hasNext()){
           
      DBObject dbObject = cur.next();
      System.out.println(dbObject.toString());
 }

5)Myeclipse后台打印结果:

{ "_id" : 123", "cust_Id" : "22222222" , "is_Show" : 1 , "start_time" : { "$date" : "2015-08-01T06:10:41.916Z"}}

5.在Elasticsearch进行如下的验证工作:

1)首先验证刚才创建的myindex索引是否已经创建

curl -XGET 'http://192.168.100.103:9200/_cat/indices?v'


2)试验基本成功,需后续继续挖掘。

  

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值