设为首页 收藏本站
查看: 736|回复: 0

[经验分享] MongoDB集群与LBS应用系列(一)

[复制链接]

尚未签到

发表于 2015-7-6 06:47:17 | 显示全部楼层 |阅读模式
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

  • 添加以下源列表



[10gen] 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")
  

本作品由VentLam创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83508-1-1.html 上篇帖子: MongoDB学习笔记(入门) 下篇帖子: Adhesive框架系列文章--Mongodb数据服务模块使用(下)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表