vivion32 发表于 2015-7-6 06:47:17

MongoDB集群与LBS应用系列(一)

1. 概念
  MongoDB作为著名的NoSQL,早已非常流行。它的地理应用也非常成熟,被foursquare用于生产环境也已经多时。本文主要记录今年6月份的一个地理产品中,使用MongoDB的过程和遇到的一些问题以及解决方案。我们在原型系统搭建时候,使用了三台机器,搭建MongoDB ReplicationSet 集群,作为地理数据库以使用。

2. 集群部署

2.1 硬件资源
  三台操作系统为CentOS 64bit version6.4的服务器,IP地址和域名



192.168.2.22 mongodb0.ventlam.com
192.168.2.23 mongodb1.ventlam.com
192.168.2.24 mongodb2.ventlam.com
  

2.2 软件安装

2.2.1 创建MONGODB专有的软件源
  下载并安装mongo 2.4.5版本,(3台机器分别执行)



vim /etc/yum.repos.d/10gen.repo

[*]添加以下源列表



name=10gen Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64 gpgcheck=0 enabled=1
  
* 安装MongoDB



yum install mongo-10gen mongo-10gen-server
  

2.2.2 REPLICATION SET 集群搭建
  部署生产环境下的MongoDB ReplicationSet ,需要数据库部署在尽可能隔离的机器上(每个数据库部署在不同的物理机器,使用不同的网络和不同的电源)。

2.2.2.1 需要配置mongodb 通过域名能够访问
  修改/etc/host或者配置DNS实现(3台机器分别执行)



vim /etc/host
  添加如下命令



192.168.2.22 mongodb0.ventlam.com
192.168.2.23 mongodb1.ventlam.com
192.168.2.24 mongodb2.ventlam.com
  修改数据库配置文件(3台机器分别执行)



vim /etc/mongod.conf
  在配置文件加入以下参数:



port = 27017 dbpath = /mnt/mongo replSet = rs0
  启动数据库 (3台机器分别执行) 创建数据目录 mkdir /mnt/mongodb/,并修改配置文件启动mongodb



vim /etc/rc.d/init.d/mongod
  启动



mongod service mongod start
  添加开机启动



chkconfig mongod on
2.2.2.2 检查三台机器数据库是否可以互联
  首先开放27017端口 (3台机器分别执行)



/sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
/etc/rc.d/init.d/iptables save
  
  然后分别检查连接情况,在所有机器输入以下命令:



mongo --host mongodb1.ventlam.com --port 27017 mongo --host mongodb2.ventlam.com --port 27017
  如果都可以进入mongo shell界面,即可。否则,请检查防火墙规则。

2.2.2.3 配置repilcation set
  进入mongo shell mongo 输入以下配置命令(只需要在任意一台机器执行)



rsconf = { \_id: "rs0",
  members: [ { _id: 0, host: "mongodb0.ventlam.com" },
         { _id: 1, host: "mongodb1.ventlam.com" },
         { _id: 2, host: "mongodb2.ventlam.com" } ] }
2.2.2.4 初始化



rsconf rs.initiate(rsconf)
  查看rsconf配置情况



rs.conf()
  
  如果返回下列值,证明mongodb集群搭建成功



{ "_id" : "rs0", "version" : 1,
"members" : [ { "\_id" : 0, "host" : "mongodb0.ventlam.com:27017" },
            { "\_id" : 1, "host" : "mongodb1.ventlam.com:27017" },
        { "\_id" : 2, "host" : "mongodb2.ventlam.com:27017" } ] }
2.2.2.5 添加删除数据实例



rs.add(":27017")
rs.remove(":27017")
  
http://i.creativecommons.org/l/by-nc-sa/2.5/cn/88x31.png
本作品由VentLam创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
页: [1]
查看完整版本: MongoDB集群与LBS应用系列(一)