配置MongoDB3.04集群分片

网上大部分都是的mongo2.x集群分片了,咱写个3.04的。
由于公司采用磁盘阵列冗余存储,所以不考虑数据备份问题只是简单的分片存储数据进行测试的。
配置结构如图:

服务器配置:
cpu双核、8G内存、/shard目录挂载500G硬盘。

服务器列表:
IP
职能
192.168.6.117
config、mongos
192.168.6.118
client
192.168.6.119
client
192.168.6.147
client
192.168.6.160
client

首先打开这5台机器执行如下相同命令:
[plain]  view plain  copy
 print ?
  1. wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz  
  2. tar zxvf mongodb-linux-x86_64-3.0.4.tgz  
  3. cp -rf mongodb-linux-x86_64-3.0.4 /usr/local/  



依次打开118、119、147、160四台机器执行如下命令(注意:使用118替换指定的119):
[plain]  view plain  copy
 print ?
  1. mkdir /shard/shard11 9  
  2. chmod -R 777 /shard/shard119  
  3. /usr/local/mongodb-3.0.4/bin/mongod -shardsvr -port 27017 -dbpath=/shard/shard119/ --storageEngine wiredTiger -logpath=/shard/shard119.log --fork  



然后启动。在终端中分别执行检查Mongod进程是否成功启动: 
[plain]  view plain  copy
 print ?
  1. ps aux | grep mongo    


如果任何一台没有启动成功,重复上面的,直到找出原因。  

OK,现在我们成功的分别在4台计算机上启动了1个mongod实例,mongod是真正存储数据的进程。集群中还需要一个配置服务器,用来存储在各个节点中共享的配置信息,存储数据的元信息[METADATA],也如上面我结构图中config.

打开117服务器执行如下命令:

[plain]  view plain  copy
 print ?
  1. mkdir /data/config  
  2. /usr/local/mongodb-3.0.4/bin/mongod -configsvr -dbpath=/data/config -port 20000 -logpath=/data/config.log --fork  



当以上都启动成功,我们可以开启mongos服务了。mongo也是在117上执行。

[plain]  view plain  copy
 print ?
  1. /usr/local/mongodb-3.0.4/bin/mongos -configdb 192.168.6.117:20000 -port 30000 -chunkSize 100 -logpath=/data/mongos.log --fork  


注意-configdb所对应的IP地址和端口应该为config里设置的所在ip及端口。-chunkSize设置分片大小主机默认200,我们可以设置成100即100M。


如果顺利的话,你在117能看到两个mongo上运行的进程,执行查看:ps -ef  | grep mong。表明mongo分片安装完毕。

下面开始配置mongo分片:

连接操作数据库:
[plain]  view plain  copy
 print ?
  1. /usr/local/mongodb-3.0.4/bin/mongo 192.168.6.117:30000/admin  



注意:以下都是在mongo命令行下完成的操作:

[plain]  view plain  copy
 print ?
  1. 添加分片服务器:  
  2. db.runCommand({"addshard":"192.168.6.118:27017"})  
  3. db.runCommand({"addshard":"192.168.6.119:27017"})  
  4. db.runCommand({"addshard":"192.168.6.147:27017"})  
  5. db.runCommand({"addshard":"192.168.6.160:27017"})  
  6.   
  7. 设置分片数据库:  
  8. db.runCommand({"enablesharding": "qiaodazhao"})  
  9.   
  10. 使用数据库:  
  11. use qiaodazhao  
  12.   
  13. 设置表分片基于字段hash:  
  14. sh.shardCollection("qiaodazhao.resume_meta_data",{_id:"hashed"})  
  15.   
  16. 设置表分片基于字段(注意这种形式与以上作用相同):  
  17. db.runCommand({"shardcollection":"qiaodazhao.things", "key":{"_id":1}})  
  18.   
  19. 打印数据库分片信息:  
  20. db.printShardingStatus()  
  21.   
  22. 打印服务器信息:  
  23. db.serverStatus()  
  24.   
  25. 创建表索引:  
  26. db.resume_meta_data.ensureIndex({"org_name":1},{"background":true})  
  27.   
  28. 查看表索引:  
  29. db.resume_meta_data.getIndexes()  



由于篇幅限制,打印信息这里就不截图了。


参考资料:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值