分片和副本集混合运用:

基本架构图:

搭建详细配置:

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 学习笔记之 分片和副本集混合运用的更多相关文章

  1. MongoDB学习笔记(六)--复制集+sharding分片 && 总结

    复制集+sharding分片                                                               背景 主机 IP 服务及端口 Server A ...

  2. MongoDB学习笔记(五)--复制集 && sharding分片

    主从复制                                                                                       主从节点开启 主节 ...

  3. MongoDB学习笔记(四)--索引 && 性能优化

    索引                                                                                             基础索引 ...

  4. mongodb的分布式集群(4、分片和副本集的结合)

    概述 前面3篇博客讲了mongodb的分布式和集群,当中第一种的主从复制我们差点儿不用,没有什么意义,剩下的两种,我们不论单独的使用哪一个.都会出现对应的问题.比較好的一种解决方式就是.分片和副本集的 ...

  5. MongoDB 3.4 分片 由副本集组成

    要在真实环境中实现MongoDB分片至少需要四台服务器做分片集群服务器,其中包含两个Shard分片副本集(每个包含两个副本节点及一个仲裁节点).一个配置副本集(三个副本节点,配置不需要仲裁节点),其中 ...

  6. Mongodb 分片与副本集

    测试搭建192.168.3.110mongos 30000,30001,30002config 40000,40001,40002shard1 50001,50002,50003shard2 5000 ...

  7. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  8. MongoDB学习笔记:MongoDB 数据库的命名、设计规范

    MongoDB学习笔记:MongoDB 数据库的命名.设计规范     第一部分,我们先说命名规范. 文档 设计约束 UTF-8 字符 不能包含 \0 字符(空字符),这个字符标识建的结尾 . 和 $ ...

  9. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

随机推荐

  1. Gym 101470 题解

    A:Banks 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt&q ...

  2. Linux音频编程(二)声卡介绍

    一.声卡 1.声卡是audio interface,它含有hardware buffer,而这个hardware buffer是在声卡里面,不是内存.声卡的缓存是环状的,则ALSA中是将数据分成连续的 ...

  3. 【Offer】[64] 【求1+2+...+n】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 求1+2+...+n,要求不能使用乘除法.for. while if else. switch. case等关键字及条件判断语句( A? ...

  4. mybatis plus使用redis作为二级缓存

    建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现.为了方便,这里我们将缓存放到mapper层.mybatis-plus整合redi ...

  5. Springboot源码分析之TypeFilter魔力

    摘要: 在平常的开发中,不知道大家有没有想过这样一个问题,为什么我们自定义注解的时候要使用spring的原生注解(这里指的是类似@Component,@Service........),要么就是 随便 ...

  6. Apache JMeter (一)环境的配置和操作

    JMeter是Apache组织的开放源代码项目,是一款优秀的开源测试工具,可以做功能测试和性能测试.是每个资深的测试工程师必须掌握的测试工具,熟悉JMeter可以大大提高工作效率. 1.下载Jmete ...

  7. Vert.x学习之 Web Client

    Vert.x Web Client 原文档 组件源码 组件示例 中英对照表 Pump:泵(平滑流式数据读入内存的机制,防止一次性将大量数据读入内存导致内存溢出) Response Codec:响应编解 ...

  8. 纯css制作电闪雷鸣的天气图标

    效果 效果图如下 ​ 实现思路 使用box-shadow属性写几个圆,将这些圆错落的组合在一起,形成云朵图案 after伪元素写下面的投影样式 before伪元素写黄色闪电的样式 dom结构 用两个嵌 ...

  9. WAP自助建站平台娃派宣布关闭 感谢建站之路有你的启蒙

    如题所示的这篇文章是我心血来潮在网上搜索到的,写的挺让我感同身受的,不妨先看一下原文吧. 原文 不知是偶然还是"冥冥定数",最后一次访问娃派建站(wap.ai)已有数十月之久了,突 ...

  10. 从原理到场景 系统讲解 PHP 缓存技术

    第1章课程介绍 此为PHP相关缓存技术的课堂,有哪些主流的缓存技术可以被使用? 第1章 课程介绍 1-1课程介绍1-2布置缓存的目的1-3合理使用缓存1-4哪些环节适合用缓存 第2章 文件类缓存 2- ...