mongoDB是目前发展比较好的NOSQL数据库之一,它对大数据和空间数据的存贮有着亮眼的表现!
通常在企业级应用中mongoDB都会部署在linux系统上对于小白来说想在linux上部署一套完整的mongoDB绝对不是什么easy的事,我也是在最近一段摸爬滚打的尝试中才成功的,写下这篇博客也是为了以后自己也可以查阅。

首先需要的就是部署所需要的环境了我使用的是VMware虚机,由于现在工作的地方资源比较富裕,给我提供了俩台价值5W的工作站电脑(绝对给力)。我在这俩台电脑上分别安装了4台centos的虚机并且配置好环境。

这里写图片描述

这是我用到的虚机的清单需要说明一下:

1-4 ,5-8分别是位于俩台工作站上的4台虚机,每个虚机上面安装一个mongod,ip自己分配,其中在1,2和5上分别安装了config,config是mongos用来管理mongod的具体原理这里就不说了,注意到5后面有个发布这个在本文就不介绍了是另一个功能就是nginx发布瓦片和wmts。最后9和10是安装在第三台电脑上的应用服务器这里就是只除了那俩台工作站之外我自己使用的电脑,上面也安装了2台虚机。由于电脑配置好的原因我这里的虚机内存都是2g的。为什么要用俩台电脑呢是因为这俩个可以一个是主一个是从互为复制集,相当于俩个分片。目前10还没用到,上面安装了一个mongos。如果电脑多但是配置不高的话就需要准备多台电脑了。

下面就是开始安装mongod了:

第一步:下载mongodb
这里需要一个mongodb的安装文件 mongodb-linux-x86_64-2.6.7 http://pan.baidu.com/s/1mg642hU这里提供下载当然也可以去官网下载,
将这个安装包分别拷到10台虚机上。

第二部:解压安装包

这里写图片描述

第三步:创建数据目录和日志目录
说明:想要创建几个mongod 就需要创建几个数据db和日志.log。
将解压文件移动到“/usr/local/mongodb”文件夹中。
这里写图片描述

在mongodb文件夹中创建data目录和logs目录
命令: mkdir -p ./data/db;
mkdir logs;
这里写图片描述

第四步:启动服务
以后台方式启动mongodb服务
这里写图片描述

命令:
numactl –interleave=all /usr/local/mongodb/bin/mongod –dbpath=/usr/local/mongodb/data/db –logpath=/usr/local/mongodb/logs/mongodb.log –fork –port 27017 –replSet rep1

第五步:设置开机启动
命令:
echo ” numactl–interleave=all/usr/local/mongodb/bin/mongod–dbpath=/usr/local/mongodb/data/db –logpath=/usr/local/mongodb/logs/mongodb.log –fork –port 27017 –replSet rep1” >> /etc/rc.local

第六步:查看日志和服务

命令:tail -f /usr/local/mongodb/logs/mongodb.log;
这里写图片描述

命令:ps aux |grep mongodb;
这里写图片描述
这里显示服务已经启动了!

查看mongodb
这里写图片描述

复制集+sharding分片

第一步:配置复制集
配置第一个复制集,用其中第一组第一个mongod,启动mongo,初始化复制集rep1。
初始化第一个rep1(mongod:192.9.104.108:27017)
命令:
config={_id:’rep1’,members:[
{_id:0,host:’192.9.104.108:27017’},
{_id:1,host:’192.9.104.109:27017’},
{_id:2,host:’192.9.104.110:27017’},
{_id:3,host:’192.9.104.110:27018’}]
}
rs.initiate(config)
这里写图片描述

配置第二个复制集,用其中第二组第一个mongod,启动mongo,初始化复制集rep2。
初始化第二个rep2(mongod:192.9.104.111:27017)
config={_id:’rep2’,members:[
{_id:0,host:’192.9.104.111:27017’},
{_id:1,host:’192.9.104.112:27017’},
{_id:2,host:’192.9.104.113:27017’},
{_id:3,host:’192.9.104.113:27018’}]
}
rs.initiate(config)
这里写图片描述

第二步:配置多台config server
这里写图片描述

第三步:配置mongos
numactl –interleave=all /usr/local/mongodb/bin/mongos -configdb 192.9.104.108:28017,192.9.104.109:28017,192.9.104.111:28017 –port 30000 –chunkSize 5 –logpath /usr/local/mongodb/logs/mongos.log –fork

备注:(只连接一个config)
numactl –interleave=all /usr/local/mongodb/bin/mongos -configdb 192.9.104.108:28017 –port 34500 –chunkSize 5 –logpath /usr/local/mongodb/logs/mongos.log –fork

启动mongos服务
这里写图片描述
连接mongos
这里写图片描述

第四步:配置shard cluster
连接mongos 的进程,并切换到admin数据库进行配置。
配置shard cluster
这里写图片描述

第五步:激活数据库及集合分片功能
新建数据库和集合,根据需求进行激活。
示例:test.test
激活数据库及集合分片
这里写图片描述

至此基于centos7的mongodb(mongod,mongos,config server)就部署完成了,虽然比较费劲但是完成后还是有点成就感的!

Logo

更多推荐