您的位置:首页 > 数据库 > Mongodb

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

2016-06-28 16:56 791 查看
概述

搭建步骤
启动configServer

启动router

启动shardServer

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

GridFS分片

概述

目前有三台主机:

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的状态



users没有配置shard,所以sharded=false

由于没有分片,数据都存放到primary节点(这里是shard0000)

此时登录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来分片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb ubuntu 集群