MongoDB 学习笔记之 分片和副本集混合运用
分片和副本集混合运用:
基本架构图:

搭建详细配置:
3个shard + 3个replicat set + 3个configserver + 3个Mongos
|
shardrsname |
Primary |
Secondary |
Secondary |
port |
|
bigdata-sh-a |
bigdata-sh-a1 |
bigdata-sh-a2 |
bigdata-sh-a3 |
28111 |
|
bigdata-sh-b |
bigdata-sh-b2 |
bigdata-sh-b1 |
bigdata-sh-b3 |
28112 |
|
bigdata-sh-c |
bigdata-sh-c3 |
bigdata-sh-c2 |
bigdata-sh-c1 |
28113 |
|
bigdata-cs |
configserver1 |
configserver2 |
configserver3 |
28200 |
在三台Linux机器的mongo根目录下建立如下文件夹:
Log:
/usr/local/mongodb/logs/a1
/usr/local/mongodb/logs/b1
/usr/local/mongodb/logs/c1
/usr/local/mongodb/logs/configserver1
DB:
/usr/local/mongodb/db/a1
/usr/local/mongodb/db/b1
/usr/local/mongodb/db/c1
/usr/local/mongodb/db/configserver1
bigdata-sh-a1.conf:
# mongod config systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/logs/a1/mongodb.log # Where and how to store data.
storage:
dbPath: /usr/local/mongodb/db/a1
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
# fork : fork and run in background
# pidFilePath:location of pidfile
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/pidFile/mongod-a1.pid # network interfaces
# Listen to local interface only, comment to listen on all interfaces.
net:
port: 28111
bindIp: 0.0.0.0 #security: enabled disabled
#security:
# keyFile: /mongodb/keyfile
# clusterAuthMode: keyFile #operationProfiling:
operationProfiling:
slowOpThresholdMs: 1000
mode: slowOp #replication: replication:
replSetName: bigdata-sh-a #sharding: sharding:
clusterRole: shardsvr ## Enterprise-Only Options #auditLog: #snmp:
bigdata-sh-configserver1.conf:
# mongod config systemLog:
destination: file
logAppend: true
path: /usr/local/mongodb/logs/configserver1/mongodb.log # Where and how to store data.
storage:
dbPath: /usr/local/mongodb/db/configserver1
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger: # how the process runs
# fork : fork and run in background
# pidFilePath:location of pidfile
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/pidFile/mongod-configserver1.pid # network interfaces
# Listen to local interface only, comment to listen on all interfaces.
net:
port: 28200
bindIp: 0.0.0.0 #security: enabled disabled
#security:
# keyFile: /mongodb/keyfile
# clusterAuthMode: keyFile #operationProfiling:
operationProfiling:
slowOpThresholdMs: 1000
mode: slowOp #replication: replication:
replSetName: bigdata-cs #sharding: sharding:
clusterRole: configsvr ## Enterprise-Only Options #auditLog: #snmp:
配置完成后,启动服务:
./mongod -f ../conf/bigdata-sh-a1.conf
./mongod -f ../conf/bigdata-sh-b1.conf
./mongod -f ../conf/bigdata-sh-c1.conf
./mongod -f ../conf/bigdata-sh-configserver1.conf
./mongod -f ../conf/bigdata-sh-a2.conf
./mongod -f ../conf/bigdata-sh-b2.conf
./mongod -f ../conf/bigdata-sh-c2.conf
./mongod -f ../conf/bigdata-sh-configserver2.conf
./mongod -f ../conf/bigdata-sh-a3.conf
./mongod -f ../conf/bigdata-sh-b3.conf
./mongod -f ../conf/bigdata-sh-c3.conf
./mongod -f ../conf/bigdata-sh-configserver3.conf
创建副本集:
./mongo hadoop1:28111/admin
use admin
rs.initiate()
rs.add("hadoop2:28111")
rs.add("hadoop3:28111")
./mongo hadoop2:28112/admin
rs.initiate()
rs.add("hadoop1:28112")
rs.add("hadoop3:28112")
./mongo hadoop3:28113/admin
rs.initiate()
rs.add("hadoop2:28113")
rs.add("hadoop1:28113")
./mongo hadoop1:28200/admin
rs.initiate()
rs.add("hadoop2:28200")
rs.add("hadoop3:28200")
在三台linux上启动Mongos:
./mongos --port 28300 --configdb bigdata-cs/hadoop1:28200,hadoop2:28200,hadoop3:28200 --fork --logpath /usr/local/mongodb/logs/mongos/mongos.log --bind_ip 0.0.0.0
连接其中一台Mongos,增加分片:
./mongo hadoop1:28300/admin
use admin
sh.addShard("bigdata-sh-a/hadoop1:28111,hadoop2:28111,hadoop3:28111")
sh.addShard("bigdata-sh-b/hadoop1:28112,hadoop2:28112,hadoop3:28112")
sh.addShard("bigdata-sh-c/hadoop1:28113,hadoop2:28113,hadoop3:28113")
sh.enableSharding("shop")
sh.shardCollection("shop.goods",{"goodid": 1});
插入大量数据进行验证:
for(var i=80002; i<=90001; i++){ db.goods.insert({goodid: i, name: "My first shard"}) }

大功告成!
MongoDB 学习笔记之 分片和副本集混合运用的更多相关文章
- MongoDB学习笔记(六)--复制集+sharding分片 && 总结
复制集+sharding分片 背景 主机 IP 服务及端口 Server A ...
- MongoDB学习笔记(五)--复制集 && sharding分片
主从复制 主从节点开启 主节 ...
- MongoDB学习笔记(四)--索引 && 性能优化
索引 基础索引 ...
- mongodb的分布式集群(4、分片和副本集的结合)
概述 前面3篇博客讲了mongodb的分布式和集群,当中第一种的主从复制我们差点儿不用,没有什么意义,剩下的两种,我们不论单独的使用哪一个.都会出现对应的问题.比較好的一种解决方式就是.分片和副本集的 ...
- MongoDB 3.4 分片 由副本集组成
要在真实环境中实现MongoDB分片至少需要四台服务器做分片集群服务器,其中包含两个Shard分片副本集(每个包含两个副本节点及一个仲裁节点).一个配置副本集(三个副本节点,配置不需要仲裁节点),其中 ...
- Mongodb 分片与副本集
测试搭建192.168.3.110mongos 30000,30001,30002config 40000,40001,40002shard1 50001,50002,50003shard2 5000 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- MongoDB学习笔记:MongoDB 数据库的命名、设计规范
MongoDB学习笔记:MongoDB 数据库的命名.设计规范 第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
随机推荐
- POJ-1062 昂贵的聘礼 (最短路)
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...
- HDU 4322Candy 最大费用最大流
由于被小孩子不喜欢的糖果的对小孩产生的效力是一样的,所以我们在网络流的时候先不考虑. 1 - 源点0到1~N个糖果,容量为1,费用为02 - 根据like数组,like[i][j] == 1时在糖果j ...
- UVA - 10480 Sabotage 最小割,输出割法
UVA - 10480 Sabotage 题意:现在有n个城市,m条路,现在要把整个图分成2部分,编号1,2的城市分成在一部分中,拆开每条路都需要花费,现在问达成目标的花费最少要隔开那几条路. 题解: ...
- poj3666 Making the Grade(基础dp + 离散化)
Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...
- Request请求的应用
1.通过request获得请求行 获得客户端的请求方式:String getMethod() 获得请求的资源: String getRequestURI() StringBuffer getReq ...
- 2019CSP初赛基础知识整理
一.硬件 计算机发展: 年代 元件 第一代 1946~1958 电子管 第二代 1959~1964 晶体管 第三代 1965~1970 集成电路 第四代 1971~? 大规模集成电路 世界上第一台 ...
- Tomcat9控制台中文乱码的解决方案
1.网上大部分都是这种方法 注释掉 tomcat 9 安装目录下的conf里的 logging.properties 找到 java.util.logging.ConsoleHandler.encod ...
- 《程序实现》从xml、txt文件里读取数据写入excel表格
直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...
- ACM团队招新赛题解
标程代码全部为C语言编写.代码中的#if LOCAL_ 至#endif为本地一些调试内容,可以忽略. Xenny的A+B(1)[容易][签到] 签到题,做不出的话可能你有点不太适合ACM了. Xenn ...
- 疑难杂症----windows7
这两天换了台win7的机器,每次开机发现时间日期没法更新,第一次手动更新后过了一天以后又恢复成20xx/01/01,头疼ing,网上找了好多办法,在这里记录一下,避免以后再碰到同样的问题. 出现这个问 ...