mongodb集群环境存储空间矢量数据(1)


之前研究了 mongodb环境搭建,考虑到今后要用到mongodb集群环境,且多位32位OS环境,因此构建了 mongodb集群环境。具体过程参考了“ Mongodb集群配置(sharding with replica set)” http://blog.csdn.net/zhangzhaokun/article/details/6269514。
实验用VMWare 8.0构建了4台XP机器,IP地址依次为192.168.111.11,192.168.111.12,192.168.111.13,192.168.111.14。

配制说明:

1、3个分片sharding,每个sharding均占据三台机器,其中192.168.111.11为主存储,192.168.111.12与192.168.111.13为Replica Sets。
2、3个配置节点Configsever依次占据192.168.111.11,192.168.111.12,192.168.111.13。
3、1个路由节点Mongos在192.168.111.14运行。


sharding A的组成为: 192.168.111.11:10000   192.168.111.12:10001  192.168.111.13:10002
sharding B的组成为: 192.168.111.11:20000   192.168.111.12:20001  192.168.111.13:20002
sharding C的组成为: 192.168.111.11:30000   192.168.111.12:30001  192.168.111.13:30002
configsever组成为: 192.168.111.11:40000   192.168.111.12:40001  192.168.111.13:40002
mongos组成为: 192.168.111.14:50000  



先从mongodb官网上down下来2.0.2,然后解压到C盘根目录下,四台虚拟机相同,因此可以先部署再做机器拷贝。在C目录下建文件夹data,data下建子目录a,b,c,config,依次为sharding A到C服务,config目录为configsever服务。

以下内容为服务启动脚本,可分别以bat形势执行,以避免在cmd下输入大量命令出现手误。

构建sharding A

mongod机器192.168.111.11下,执行:

mongod.exe --logappend --dbpath c:\data\a --port 10000 --shardsvr --replSet setA --rest --oplogSize 64

mongod机器192.168.111.12下,执行:

mongod.exe --logappend --dbpath c:\data\a --port 10001 --shardsvr --replSet setA --rest --oplogSize 64

mongod机器192.168.111.13下,执行:

mongod.exe --logappend --dbpath c:\data\a --port 10002 --shardsvr --replSet setA --rest --oplogSize 64

mongos机器192.168.111.14下,执行:

call mongo.exe 192.168.111.11:10000/admin
config={_id:'setA',members:[{_id:0,host:'192.168.111.11:10000'},{_id:1,host:'192.168.111.12:10001'},{_id:2,host:'192.168.111.13:10002'}]}
rs.initiate(config)

构建sharding B

mongod机器192.168.111.11下,执行:

mongod.exe --logappend --dbpath c:\data\b --port 20000 --shardsvr --replSet setB --rest --oplogSize 64

mongod机器192.168.111.12下,执行:

mongod.exe --logappend --dbpath c:\data\b --port 20001 --shardsvr --replSet setB --rest --oplogSize 64

mongod机器192.168.111.13下,执行:

mongod.exe --logappend --dbpath c:\data\b --port 20002 --shardsvr --replSet setB --rest --oplogSize 64

mongos机器192.168.111.14下,执行:

call mongo.exe 192.168.111.11:20000/admin
config={_id:'setB',members:[{_id:0,host:'192.168.111.11:20000'},{_id:1,host:'192.168.111.12:20001'},{_id:2,host:'192.168.111.13:20002'}]}
rs.initiate(config)

构建sharding C

mongod机器192.168.111.11下,执行:

mongod.exe --logappend --dbpath c:\data\c --port 30000 --shardsvr --replSet setC --rest --oplogSize 64

mongod机器192.168.111.12下,执行:

mongod.exe --logappend --dbpath c:\data\b --port 30001 --shardsvr --replSet setC --rest --oplogSize 64

mongod机器192.168.111.13下,执行:

mongod.exe --logappend --dbpath c:\data\c --port 30002 --shardsvr --replSet setC --rest --oplogSize 64

mongos机器192.168.111.14下,执行:

call mongo.exe 192.168.111.11:30000/admin
config={_id:'setB',members:[{_id:0,host:'192.168.111.11:30000'},{_id:1,host:'192.168.111.12:30001'},{_id:2,host:'192.168.111.13:30002'}]}
rs.initiate(config)


构建configsever

mongod机器192.168.111.11下,执行:

call mongod.exe --configsvr --logappend --dbpath c:\data\config --port 40000 --shardsvr

mongod机器192.168.111.12下,执行:

call mongod.exe --configsvr --logappend --dbpath c:\data\config --port 40001 --shardsvr

mongod机器192.168.111.13下,执行:

call mongod.exe --configsvr --logappend --dbpath c:\data\config --port 40002 --shardsvr


构建mongos路由
call mongo.exe 192.168.111.14:50000

mongos机器192.168.111.14下,执行:

call mongos.exe --configdb 192.168.111.11:40000,192.168.111.12:40001,192.168.111.13:40002 --logappend --port 50000

配置分片
mongos机器192.168.111.14下,执行:

call mongo.exe 192.168.111.14:50000
use admin
db.runCommand({addshard:"setA/192.168.111.11:10000,192.168.111.12:10001,192.168.111.13:10002",name:"shardSetA"})
db.runCommand({addshard:"setB/192.168.111.11:20000,192.168.111.12:20001,192.168.111.13:20002",name:"shardSetB"})
db.runCommand({addshard:"setC/192.168.111.11:30000,192.168.111.12:30001,192.168.111.13:30002",name:"shardSetC"})

查看分片状态
printShardingStatus()
--- Sharding Status ---
  sharding version: { "_id" : 1, "version" : 3 }
  shards:
        {  "_id" : "shardSetA",  "host" : "setA/192.168.111.11:10000,192.168.111
.13:10002,192.168.111.12:10001" }
        {  "_id" : "shardSetB",  "host" : "setB/192.168.111.11:20000,192.168.111
.13:20002,192.168.111.12:20001" }
        {  "_id" : "shardSetC",  "host" : "setC/192.168.111.11:30000,192.168.111
.13:30002,192.168.111.12:30001" }
  databases:
        {  "_id" : "admin",  "partitioned" : false,  "primary" : "config" }

创建数据库geodb
use geodb

切换到admin权限
use admin

创建数据库表geodb_orders

db.createCollection(geodb_orders')

将数据库geodb设置为允许分片
db.runCommand({enablesharding:"geodb"})

设置表的分区主键为order_id

db.runCommand({shardcollection:'geodb.geodb_orders',key:{order_id:1}}) 

至此,构建完mongodb毕集群环境。下一步工作是研究如何构建中间件层。构建该中间件的第一项工作是实现基于R树的分布式空间索引,构建过程中可能还需要对集群架构进行大的调整,数据如何在节点上分布是需要考虑的问题。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值