`
landyer
  • 浏览: 141919 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ubuntu MonogoDB Sharding + Replica Set配置集群 方法二

阅读更多

原文地址:http://www.cnblogs.com/65702708/archive/2011/04/17/2018974.html

 

 

要构建一个 MongoDB Sharding Cluster(集群),需要三种角色:

Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障

Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。

Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库

 

MongoDB架构

 

 

 

  1. 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的shard1
  2. 分别在3台机器运行一个mongod实例(称为mongod shard21,mongod shard22,mongod shard23)组织replica set2,作为cluster的shard2
  3. 每台机器运行一个mongod实例,作为3个config server
  4. 每台机器运行一个mongs进程,用于客户端连接

 现在开始配置:

 

 系统环境:Ubuntu10.2

 MongoDB版本:Mongodb1.81

 由于没有现实中没有实际这么多台服务,这个配置我就只在一台Ubuntu服务器中完成配置,其它机器配置应该是一样。在有真实机器的环境中注意各个服务器之间的MongoDB的版本一定要一致,不然可能会出现rs.initiate(config)不能正确添加的问题

首先分配shard

1. mongodb端口 10001和10011 为一组shard,和一组Replica Set

步骤:

1)$ mkdir -p /usr/MonogoData/shard1_10001

2)$ mkdir -p/usr/MonogoData/shard1_10011

3)

$ ~/liaoyong/down/mongodb1.8.2/bin/mongod --fork --shardsvr --port 10001 --dbpath /usr/MonogoData/shard1_10001/ --logpath /usr/MonogoData/shard1_10001/log.log --replSet shard1 --rest 
$ ~/liaoyong/down/mongodb1.8.2/bin/mongod --fork --shardsvr --port 10011 --dbpath /usr/MonogoData/shard1_10011/ --logpath /usr/MonogoData/shard1_10011/log.log --replSet shard1 --rest

运行完成后,进入任意一个MongoDB端口,配置Replica Set

 

$ ~/liaoyong/down/mongodb1.8.2/bin/mongo --prot 10001

config={_id:'shard1',members:[{_id:0,host:'192.168.0.182:10001'},{_id:1,host:'192.168.0.182:10011'}]}

rs.initiate(config)

rs.status()

 

 这样,第1个shard就配置好了。

 

接下来配置第2组shard

 

1)$ mkdir -p /usr/MonogoData/shard3_10003

2)$ mkdir -p/usr/MonogoData/shard3_10033

3)

$ ~/liaoyong/down/mongodb1.8.2/bin/mongod --fork --shardsvr --port 10003 --dbpath /usr/MonogoData/shard3_10003/ --logpath /usr/MonogoData/shard3_10003/log.log --replSet shard3 --rest 
$ ~/liaoyong/down/mongodb1.8.2/bin/mongod --fork --shardsvr --port 10033 --dbpath /usr/MonogoData/shard3_10033/ --logpath /usr/MonogoData/shard3_10033/log.log --replSet shard3 --rest

运行完成后,进入任意一个MongoDB端口,配置Replica Set

 

$ ~/liaoyong/down/mongodb1.8.2/bin/mongo --prot 10003

config={_id:'shard3',members:[{_id:0,host:'192.168.0.182:10003'},{_id:1,host:'192.168.0.182:10033'}]}

rs.initiate(config)

rs.status()

 

好了,现在开始配置1台Mongodb Config

$ mkdir -p /usr/MonogoData/Config_20001

 

$ ~/liaoyong/down/mongodb1.8.2/bin/mongod --fork --configsvr --port 20001 --dbpath /usr/MonogoData/config_20001/ --logpath /usr/MonogoData/config_20001/log.log --rest

 

$ ps aux | grep mongodb | grep -v grep

查看是否mongodb的进程都起来了

下面接着配置Mongs

$ mkdir -p /usr/MonogoData/master

 

 

$ ~/liaoyong/down/mongodb1.8.2/bin/mongos --fork --port 40000 --logpath /usr/data/master/log.log  --chunkSize 1

 

--configdb "192.168.0.182:20001"

进入Mongos 

$ ~/liaoyong/down/mongodb1.8.2/bin/mongo --port 40000

>use admin

 

>db.runCommand({ addshard:'shard1/192.168.0.182:10001,192.168.0.182:10011' }) 
>db.runCommand({ addshard:'shard3/192.168.0.182:10003,192.168.0.182:10033' })

>db.runCommand({listshards:1})

 

接下来进行切片

 

db.runCommand({ enablesharding:'liaoyongdb' })  #指定切片数据库

db.runCommand({shardcollection:'liaoyongdb.test',key:{_id:1}})   #指定切片数据的表

printShardingStatus() 

 

 

 

 

 

好了,到这里集群就已经配置好了

我这里由于是同一台电脑,我插入了1百w数据的时候,内存都用完了,下面就是大家自己试试了。

希望能帮助大家共同学习MongoDB。

 

分享到:
评论

相关推荐

    SpringMVC+Monogodb

    通过分析这个项目,你可以更深入地理解这两者如何协同工作,例如观察如何配置 MongoDB,如何定义 DAO,以及 Controller 如何调用 DAO 方法进行数据操作。 总的来说,SpringMVC 和 MongoDB 的结合提供了灵活的数据...

    MonogoDB数据库百度云02

    MonogoDB数据库百度云02

    monogodb的第三方jar包

    java操作mongo数据的第三方jar包,就和oracle的第三方jar包一样

    Nodejs Express4.x开发框架随手笔记

    Express: ?web application framework for?Node.js?...Express4.x配置文件 Ejs模板使用 Bootstrap界面框架 路由功能 Session使用 页面提示 页面访问控制 开发环境: Ubuntu MonogoDB: v2.6.4 nodej

    基于Node.js+MongoDB+Vue.js+微信小程序搭建的图书管理平台.zip

    【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 ... 【项目质量】: 所有源码都经过严格测试,...

    monogodb连接工具

    1. **连接管理**:Robo 3T支持创建、编辑和管理多个MongoDB服务器的连接配置。用户可以输入主机名、端口号、数据库名、用户名和密码等信息,以便快速连接到MongoDB实例。 2. **数据浏览**:一旦连接成功,用户可以...

    JAP注解参考

    开发者可以选择使用注解来覆盖默认配置,这种方法被称为“异常配置”。以下是JPA注解的一些主要类别和用途: 1. **实体**: - `@Entity`:标记一个类为JPA实体,使得它可以被用于JPA服务。 - `@Table`:指定实体...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在这个文件中,有一个方法是parseThinkWhere,这个方法负责解析查询条件并生成MongoDB能够理解的查询语句。根据上述内容,parseThinkWhere方法的switch语句中缺少了对_complex的处理,因此它不支持复合查询。 在...

    mongodb在java中的使用

    查询数据则可以使用`find()`方法,支持各种条件查询: ```java FindIterable<Document> results = collection.find(eq("name", "John")); for (Document doc : results) { System.out.println(doc.toJson()); } ``...

    mongodb.jar以及javadoc

    Document updateDocument = new Document("$set", new Document("key", "newValue")); collection.updateMany(query, updateDocument); ``` 删除操作同样简单: ```java collection.deleteMany(query); ``` ...

    dealport:一个用 Node.js 构建的开源社交应用

    MonogoDB连接配置见默认为mongodb://localhost:27017/dealport 编译 LESS CSS 和 Javascript 包,运行 linter 等(使用 grunt)并启动服务器: npm start 配置 有关有效的配置键及其默认值,请参阅 lib/server-...

    MongoDB安装包.zip

    2. 分布式架构:支持分片(sharding)和复制集(replication),可以实现水平扩展,提高系统的可用性和性能。 3. 自动分片:MongoDB能够自动将数据分散到多个节点,实现负载均衡。 4. 强大的查询语言:MongoDB提供...

    MySql Oracle Redis Mycat MongoDB Memcached数据库教程

    Oracle的特点包括强大的性能、高可用性和安全性,支持分布式数据库、实时应用集群和大数据处理。其PL/SQL编程语言为开发者提供了丰富的数据库操作能力。 3. Redis Redis是一个内存中的数据结构存储系统,常作为...

    C# mongoDB 驱动

    `MongoDB.Bson.dll` 包含了 Bson(Binary JSON)相关的类和方法,用于序列化和反序列化对象到 MongoDB 的 BSON(二进制JSON)格式。BSON 是 MongoDB 内部存储数据的一种高效方式,它类似于 JSON,但支持更多的数据...

    咕泡学院_Tom_JavaVIP课程_MongoDB数据库1

    MongoDB 是一种流行的开源、非关系型数据库管理系统,属于 NoSQL 数据库的一种。它采用了分布式文件存储机制,由 C++ 语言编成,为 Web 应用提供了高性能、可扩展的数据存储解决方案。MongoDB 兼具关系数据库和非...

    C# Mongodb案例 DLL

    5. **查询数据**:查询数据通常使用`Find`方法,它可以返回一个`IAsyncCursor`,你可以遍历它来获取结果: ```csharp var filter = Builders<BsonDocument>.Filter.Eq("name", "John"); var users = await ...

Global site tag (gtag.js) - Google Analytics