mongodb分布式部署 多分片部署 复制集
来源:互联网 发布:vb自动登录网页弹框 编辑:程序博客网 时间:2024/06/06 20:51
部署环境:
9个节点, 分别为
node79(192.168.136.79),
node78(192.168.136.78),
node77(192.168.136.77),
node76(192.168.136.76),
node75(192.168.136.75),
node74(192.168.136.74),
node73(192.168.136.73),
node72(192.168.136.72)
node71(192.168.136.71),
每个节点的配置如下:
操作系统:ubuntu 11.10, 内存32G, 磁盘4T,CPU16核
目标部署结构:
node79和node78和node77 组成第一个复制集,为shard1,
注意:一个复制集中最好有奇数个工作节点,这样当某个节点挂掉的时候,其他节点可以通过选举的方式推选出新的主节点。
如果没有奇数个工作节点,也可以通过添加仲裁进程的方式来实现。
node76和node75和node74 组成第二个复制集,为shard2,
node73和node72和node71 组成第三个复制集,为shard3,
> config = {_id: ‘shard1′, members: [
{_id: 0, host: '192.168.136.79:27017'},
{_id: 2, host: '192.168.136.78:27017'},
{_id: 3, host: '192.168.136.77:27017'},]
}
> rs.initiate(config);
以同样的方式配置shard2 和 shard3
(3)启动configure server
在node72,node74和node78上,分别运行如下:
./mongod –configsvr –dbpath /home/mongodb/data/config –port 20000 –logpath /home/mongodb/data/config.log –fork #config server也需要dbpath
(4)启动mongos服务
在node79上运行:
./mongos –configdb 192.168.136.72:20000,192.168.136.74:20000,192.168.136.78:20000 –port 30000 –logpath /home/mongodb/data/mongos.log –fork
接下来是对该分布式mongodb的配置
(1)添加shard server
在任何一台客户端机器上
./mongo 192.168.136.79:30000/admin
>db
admin
>db.runCommand( { addshard : “shard1/192.168.136.79:27017,192.168.136.78:27017″,name:”s2″} );
#!/usr/bin/env pythonfrom pymongo import Connectionimport time,datetimeimport randomconnection = Connection('192.168.136.79', 27017)db = connection['test']def func_time(func): def _wrapper(*args,**kwargs): start = time.time() func(*args,**kwargs) print func.__name__,'run:',time.time()-start return _wrapper@func_timedef insert(num): posts = db.people for x in range(num): post = {"_id" : str(x), "author": str(x)+"Mike","number": random.randint(0,100), "text": "My first blog post!", "tags": ["mongodb", "python", "pymongo"], "date": datetime.datetime.utcnow()}print x posts.insert(post)if __name__ == "__main__":num = 20000000insert(num)
#!/usr/bin/env pythonfrom pymongo import Connectionimport time,datetimeimport randomconnection = Connection('192.168.136.79', 27017)db = connection['test']def func_time(func): def _wrapper(*args,**kwargs): start = time.time() func(*args,**kwargs) print func.__name__,'run:',time.time()-start return _wrapper#@func_timedef randy(): rand = random.randint(1,5000000) return rand@func_timedef mread(num): find = db.people #find.find({"author": str(rand)+"Mike"})#for x in range(num):#rand = randy()#find.find({"author": str(rand)+"Mike"})#print find.find({"number":189}).count()x = 1for post in find.find({"number":19}):x =x+1#print x#post.number = 19#print post#for x in range(num):#find.findone({"author":str()})if __name__ == "__main__": num = 10000000 mread(num)
- mongodb分布式部署 多分片部署 复制集
- MongoDB分布式部署之分片配置
- MongoDB分布式部署之分片配置
- mongodb分布式集群部署,集群分片策略
- mongodb分布式集群部署,集群分片策略
- mongodb多节点部署 分片部署 分片集群
- mongodb分片部署
- Mongodb 集群分片部署
- Mongodb的分片部署
- mongodb分片部署
- MongoDB 分片模式部署
- mongodb分片部署
- MongoDB分片集群部署
- mongodb分片部署说明
- mongodb部署分片集群
- mongodb分片部署
- Mongodb的副本集+分片部署
- MongoDB 副本集+分片 架构部署
- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结
- hdu 1271 整数对
- wifi 问题解答
- 不经历风雨怎么见彩虹
- Linux ACL
- mongodb分布式部署 多分片部署 复制集
- UILabel自动换行
- 阶乘问题
- SQL高级语句
- 交通灯管理系统
- Linux中 大页表的使用
- Android游戏开发中进度条的使用
- linux进程后台运行的几种方法
- mongodb在建立一个T级别的数据库时,进程挂掉