【转载】mongoDB分布式环境搭建步骤笔记

-由于自己懒到不愿写,不想再回去截图再一条条码。下面有关于这个的内容很详细,几乎每一个步骤都给出来了。如果有问题可以先检查是不是自己在配置过程中某部分细节敲错了。

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_37161280/article/details/99841331

总体架构的搭建:

1.分布式架构以及端口的分配设定:

节点:localhost 架构说明:
这个是config的节点说明
 27018:config server(master)config的配置信息,主节点
 27019:config server(slave)             配置信息,从节点,防止主节点奔溃
分片shard的节点说明:
27020:shard_master 
27021:shard_slave
 27022:shard_arbiter 
分片shard2的节点说明:
27023:shard2 
27025:shard2_slave
27026:shard2_arbiter
路由节点:
27024:router

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
架构图:

在这里插入图片描述

2.在ubuntu里面进行搭建:

1.在自己的home目录下创建一个test空的文件夹
chexin@chexin-virtual-machine:~$ mkdir test
2.在进入test文件里面,创建我们的节点的config的配置文件和存放日志的空文件夹。
这是所有配置文件都创建好了后的的界面展示。
在这里插入图片描述
在这里插入图片描述
接下来手把手教学:
进入到test的目录下面:
(1)创建 configserver_master.conf 的配置文件
(2)logpath里面有一个文件的路径为 configserver_master.conf 这里是一个空文件夹,需要自己提前在test路径下面 创建一个新的文件夹来接收日志文件:
创建一个新的文件夹
chexin@chexin-virtual-machine:~/test$ mkdir configserver_master 创建一个新的文件chexin@chexin-virtual-machine:~/test$ gedit configserver_master.conf`
配置文件内容:

directoryperdb=true
replSet=config
configsvr=true
logpath=/home/chexin/test/configserver_master/mongod.log
logappend=true
fork=true
port=27018
dbpath=/home/chexin/test/configserver_master
pidfilepath=/home/chexin/test/configserver_master/mongod.pid

说明: /home/chexin/test/ 这个是当前文件夹的位置,这里换成你自己的位置。 关于路径的都换成自己当前文件的路径就好了,所有的文件的路径和文件名都不能错,一定检查仔细,看清楚。
也就是说每创建一个conf文件都必须要有一个congfig配置文件和一个config的空目录来接收日志文件
在这里插入图片描述

(2)创建 configserver_slave的配置文件
chexin@chexin-virtual-machine:~/test$ vi configserver_slave.conf
如下图所示:这里的配置文件跟上面的几乎是一样的,不过更改了路径名字和端口号而已。
在这里插入图片描述

第一步configserver的配置就完成了,分别启动master和slave服务。

chexin@chexin-virtual-machine:~/test$ mongod -f configserver_master.conf
chexin@chexin-virtual-machine:~/test$ mongod -f configserver_slaveconf
启动成功后:
在这里插入图片描述
查看你设置的log文件夹会有一大堆配置文件在里面则说明成功了:
在这里插入图片描述
2.在主节点上的配置:
进入到master节点

chexin@chexin-virtual-machine:~/test$ mongo --port=27018
输入:
use admin
在输入配置信息:
cfg={_id:"config",members:[{_id:0,host:'localhost:27018',priority:2}, {_id:1,host:'localhost:27019',priority:1}]};

成功界面:
在这里插入图片描述
再运行:

rs.initiate(cfg)

在这里插入图片描述
从节点上进行开启:
rs.slaveOk()
这里是告诉主节点我准备好了。

以上为config部分的全部步骤:

配置shard

编写配置⽂文件:这个是shard_master.conf的配置文件
directoryperdb=true
replSet=shard
shardsvr=true
logpath=/home/chexin/test/shard_master/mongod.log
logappend=true
fork=true
port=27020
dbpath=/home/chexin/test/shard_master
pidfilepath=/home/chexin/test/shard_master/mongod.pid

	 `这里要注意:replSet=shard   这里设置的是shard`

   
   
  • 1

其他的shard_slave.conf和shard_aribiter.conf的配置文件和上面的是一样的,这里注意把每个配置文件里面的文件名和端口号换成主体框架上面的端口号,也就是 27021和27022.
master、slave、arbiter都配置好后,分别启动
mongod -f mongo.conf
在这里插入图片描述
chexin@chexin-virtual-machine:~/test$ mongod -f shard_master.conf
chexin@chexin-virtual-machine:~/test$ mongod -f shard_slaveconf
chexin@chexin-virtual-machine:~/test$ mongod -f shard_aribiter.conf

进入主节点进行配置:

chexin@chexin-virtual-machine:~/test$ mongo --port=27020

cfg={_id:“shard”,members:[{_id:0,host:‘127.0.0.1:27020’,priority:2},{_id:1,host:‘127.0.0.1:27021’,priority:1},{_id:2,host:‘127.0.0.1:27022’,arbiterOnly:true}]}
在这里插入图片描述
rs.initiate(cfg)
在这里插入图片描述

配置另一个分片 shard2

这个是另一个分片的配置目录。需要向第一个分片一样建立三个配置文件和三个空文件夹,具体配置信息请参照第一个分片shard的配置过程。端口号和文件名还有路径名记得更改。
在配置文件里的时候,特别注意这里要更改设置。
这里要注意:replSet=shard2 这里设置的是shard2
在这里插入图片描述

按照相同方法配置另一个分⽚,把文件名和路径和相对应的端口号给更改好就可以了。

分别启动三个配置文件

进入主节点进行配置:

chexin@chexin-virtual-machine:~/test$ mongo --port=27023

cfg={_id:“shard2”,members:[{_id:0,host:‘127.0.0.1:27023’,priority:2},{_id:1,host:‘127.0.0.1:27025’,priority:1},{_id:2,host:‘127.0.0.1:27026’,arbiterOnly:true}]};
在这里插入图片描述
rs.initiate(cfg)
在这里插入图片描述
至此,两块分片配置完成。

router的配置

配置路路由节点
编写配置⽂文件

configdb = config/127.0.0.1:27019,127.0.0.1:27018
logpath=/home/chexin/test/router/mongod.log
logappend=true
fork=true
port=27024
pidfilepath=/home/chexin/test/router/mongod.pid
在这里插入图片描述

注意这里的启动的命令是:mongs不是 mongod

mongos -f router.conf

配置具体的分片策略

登录mongos服务器:用mongos启动
chexin@chexin-virtual-machine:~/test$ mongo --port=27024

use admin
mongos> sh.addShard(“shard/127.0.0.1:27020,127.0.0.1:27021,127.0.0.1:27022”);
操作图:
添加自己的分片shard的划分:
在这里插入图片描述
分片shard2
mongos> sh.addShard(“shard2/127.0.0.1:27023,127.0.0.1:27025,127.0.0.1:27026”);
在这里插入图片描述

在mongos上为具体的数据库配置sharding
sh.enableSharding(“test”)
在这里插入图片描述

对test.t集合以id列列为shard key进⾏行行hashed sharding

sh.shardCollection(“test.t”,{id:“hashed”})
可以看到⾃自动为id列列创建了了索引
在这里插入图片描述
db.t.getIndexes()
在这里插入图片描述
分片验证,这个操作在router中进行操作。

use test

for(i=1;i<=1000;i++){db.t.insert({id:i,name:“Lihua”})}
可以看到数据被分配到两个分⽚片当中,分⽚片集群搭建完成

查看数据:

mongos> show dbs
在这里插入图片描述

这个表示我们刚刚插入的1000条数据已经成功放入了router的两个分片中,我们现在分别进入两个分片去查看存储情况:
1.进入shard_slave去查看存储情况
chexin@chexin-virtual-machine:~$ mongo --port=27021

在这里插入图片描述
这里存储了480条数据

2.进入shard2去查看数据
chexin@chexin-virtual-machine:~$ mongo --port=27023
这里存储了520条数据
在这里插入图片描述
至此:检测完毕,部署成功。

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e44c3c0e64.css" rel="stylesheet">
                </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值