IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Windows环境下MongoDB分片集群配置 -> 正文阅读

[大数据]Windows环境下MongoDB分片集群配置

其实我是照着大佬的方法配置的,之所以要自己写一篇博客是为了加深记忆,增强理解力。话不多说,开始。
我这里用的方法配置,就只需要下载一次mongodb,配置一次环境变量即可。还有种方式是直接弄多个mongodb运行在不同机器上。我这里选择这种方式实际上是偷懒了。不过无论哪种方式,架构都是一样的。先模仿别人,等自己彻底搞明白了再去按照自己的方式配置。

准备文件夹

我们这里弄两个分片,分别是shard1和shard2。
首先在D盘中创建一个文件夹,我这里是D:\shards
在这里插入图片描述
同时按照我的方式创建下面几个文件夹。
之后我们分别进入这几个文件夹,创建子文件夹。注意,config我没有用到,可以不用创建。
configServer:
在这里插入图片描述
config里面分别创建config-server1.config文件和config-server2.config文件。
在这里插入图片描述
之后进入data文件夹,创建一个db文件夹,再在db文件夹下面创建两个文件夹分别是server1和server2。
在这里插入图片描述
这两个文件夹是存放数据的文件夹。创建好后,configServer文件夹的准备工作我们就做好了。
接下来是routersvr文件夹:
在这里插入图片描述
config文件夹下面创建配置文件:
在这里插入图片描述
这样routersvr文件夹的准备工作也做好了
接下来看shard1文件夹:
在这里插入图片描述
在data文件夹下新建db文件夹,db文件夹下新建rs1和rs2文件夹:
在这里插入图片描述
在config文件夹下新建rs1和rs2文件夹:
在这里插入图片描述
接下来打开shard2文件夹,和shard1基本一样
在这里插入图片描述
config下面:
在这里插入图片描述
data\db:
在这里插入图片描述
至此,我们文件的准备基本结束。
现在开始配置

shard配置

shard2

打开rs1.conf,输入以下内容:

dbpath=D:\shards\shard2\data\db\rs1
logpath=D:\shards\shard2\log\rs1.log
journal=true
port=20001
replSet=shard2

rs2.conf:

dbpath=D:\shards\shard2\data\db\rs2
logpath=D:\shards\shard2\log\rs2.log
journal=true
port=20002
replSet=shard2

shard1

同理:
rs1:

dbpath=D:\shards\shard1\data\db\rs1
logpath=D:\shards\shard1\log\rs1.log
journal=true
port=10001
replSet=shard1

rs2:

dbpath=D:\shards\shard1\data\db\rs2
logpath=D:\shards\shard1\log\rs2.log
journal=true
port=10002
replSet=shard1

打开router.config,并且输入以下内容:

port=40001
logpath=D:\shards\routersvr\log\server.log

打开config-server1.config并输入:

dbpath=D:\shards\configServer\data\db\server1
logpath=D:\shards\configServer\log\server1.log
journal=true
port=30001
replSet=config-server

config-server2.config

dbpath=D:\shards\configServer\data\db\server2
logpath=D:\shards\configServer\log\server2.log
journal=true
port=30002
replSet=config-server

至此,所有的配置我们也基本弄完了,剩下就是一些cmd操作了。
打开cmd(不是shell),直接输入:
mongod -shardsvr -config D:\shards\shard1\config\rs1.conf
这个命令的意思是打开shard1的rs1节点
在这里插入图片描述
回车后并不会显示什么东西。但是记住,这个窗口千万别关,关了,就又要重新启动一次。
我们可以打开一个新的cmd窗口,验证该节点是否启动成功
输入mongo -port 10001
在这里插入图片描述
可以看到启动成功。
同理重复操作,启动rs2节点:
在这里插入图片描述
之后我们设置节点:
再打开一个cmd,分别按顺序输入以下命令:

mongo -port 10001
rs.initiate()
shard1:SECONDARY> rs.add("localhost:10002")

结果:
在这里插入图片描述
我们继续配置shard2
和shard1同理,操作一模一样,我就只放结果了:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里,两个分片就结束了,千万记得,启动节点的窗口别关闭了。

configServer

接下来是configServer:
打开一个新的cmd窗口,输入:

mongod -configsvr -config D:\shards\configServer\config\config-server1.config

在这里插入图片描述
再打开一个新的cmd窗口:

mongod -configsvr -config D:\shards\configServer\config\config-server2.config

在这里插入图片描述
这两个窗口也别关。
继续再打开一个窗口,依次输入以下三个命令:

mongo -port 30001
rs.initiate()
shard1:SECONDARY> rs.add("localhost:30002")

在这里插入图片描述
这里,configServer也完成了,我们继续下一个router。

router

打开一个新的窗口输入:

mongos -configdb "config-server/localhost:30001,localhost:30002" -config D:\shards\routersvr\config\router-server.config

在这里插入图片描述
这个窗口千万别关
接下来打开新cmd窗口,分别按顺序输入以下指令:

mongo -port 40001
use admin
db.runCommand({addshard:"shard1/localhost:10001,localhost:10002",allowLocal:true}) //添加分片1
db.runCommand({addshard:"shard2/localhost:20001,localhost:20002",allowLocal:true}) //添加分片2

此时我们可以看分片是否添加成功:

use config
db.shards.find()

在这里插入图片描述
已经添加成功了。
继续:

use admin
db.runCommand({"enablesharding":"test"}) //设置数据库分片存储
db.runCommand({"shardcollection":"test.users","key":{"_id":"hashed"}}) //设置集合片键,根据id进行分片

至此就已经全部配置好了。

测试

我们直接开始测试。打开一个新的cmd窗口。输入:

mongo  -port 40001

开始进行插入操作:

use test
db.users.insert({name:"a1"})

然后连续插入几个数据,看他们分别存在哪个shard内。
在这里插入图片描述
我总共插入了8条数据,shard1里面有4条
在这里插入图片描述
shard2里面有4条
说明我们分片集群成功了。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 21:03:44  更:2022-09-24 21:06:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:33:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码