[mongodb]shard cluster(分片集群)搭建实录

概述

目前有三台主机:
192.168.1.220
192.168.1.221
192.168.1.200

其中:
config server:220:27000,221:27000,221:27001 (注意,configServer的个数必须是奇数,即1,3,5
router :220
shard server:220,221,200

mongo版本:3.2.6
OS:ubuntu 14.0.4

搭建步骤

首先从官网下载mongo压缩包,解压后得到如下的目录结构
这里写图片描述

其中*.conf是我自己新建的配置文件,data是数据存放目录,logs是日志目录。

启动configServer

mongoc.conf是configServer的配置文件,内容如下:

logpath=/mnt/mongodb3.2.6/logs/mongoc.log
pidfilepath=/mnt/mongodb3.2.6/mongoc.pid
logappend=true
fork=true
port=27000
dbpath=/mnt/mongodb3.2.6/data/config
configsvr=true

然后用以下命令:

./bin/mongod -f /mnt/mongodb3.2.6/mongoc.conf

这里写图片描述

查看是否启动成功:

ps -e|grep mongo

看到mongod的进程即表示启动成功。

同样的,我们启动221中的configServer

启动router

启动了三个configServer后,就可以启动了router了,此时,返回到220,配置mongos.conf:

logpath=/mnt/mongodb3.2.6/logs/mongos.log
pidfilepath=/mnt/mongodb3.2.6/mongos.pid
logappend=true
fork=true
port=27010
configdb=192.168.1.220:27000,192.168.1.221:27000,192.168.1.221:27001

然后执行以下命令:

./bin/mongos -f /mnt/mongodb3.2.6/mongos.conf

启动shardServer

分别进入220,221,200 三台机子,执行相同的命令(27100起始shard):

logpath=/mnt/mongodb3.2.6/logs/mongod.log
pidfilepath=/mnt/mongodb3.2.6/mongod.pid
logappend=true
fork=true
port=27100
dbpath=/mnt/mongodb3.2.6/data/shard
shardsvr=true

然后执行命令:

./bin/mongod -f /mnt/mongodb3.2.6/mongod.conf

同样的,对221,200执行相同的操作,这里配置文件我用的也是一样的。

这个时候,我们有了三个shard,分别是220,221,200,端口都是27100,。
此时我们要将这三个shard加入到router中。
这里写图片描述

接着我们上传一个文件到mongodb中(可选,我的目的是自动创建一个数据表,看客可以自己手动创建):
这里写图片描述

然后,对fs.files, fs.chunks 两个表进行shard。
这里写图片描述

此时,我们查看DataIntegratedPlatform.fs时,会发现已经分片了:
这里写图片描述

上图的“shards”属性。

没有分片的数据表如何保存?

我们在mongos中创建test库,然后创建users表,执行如下操作:
这里写图片描述

然后查看test.users的状态
这里写图片描述

  1. users没有配置shard,所以sharded=false
  2. 由于没有分片,数据都存放到primary节点(这里是shard0000)
  3. 此时登录shard0000(192.168.1.220:27100)可以看到数据

此时将users加入shard:
这里写图片描述

GridFS分片

详细的请看:shard-gridfs-data

常用的就是:

db.runCommand( { shardCollection : "test.fs.chunks" , key : { files_id : 1 , n : 1 } }

对files_id,n 取hash key来分片。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

集成显卡

码字不易,需要您的鼓励😄

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值