[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
其中:
其中*.conf是我自己新建的配置文件,data是数据存放目录,logs是日志目录。
然后用以下命令:
查看是否启动成功:
看到mongod的进程即表示启动成功。
同样的,我们启动221中的configServer
然后执行以下命令:
然后执行命令:
同样的,对221,200执行相同的操作,这里配置文件我用的也是一样的。
这个时候,我们有了三个shard,分别是220,221,200,端口都是27100,。
此时我们要将这三个shard加入到router中。
接着我们上传一个文件到mongodb中(可选,我的目的是自动创建一个数据表,看客可以自己手动创建):
然后,对fs.files, fs.chunks 两个表进行shard。
此时,我们查看DataIntegratedPlatform.fs时,会发现已经分片了:
上图的“shards”属性。
然后查看test.users的状态
users没有配置shard,所以sharded=false
由于没有分片,数据都存放到primary节点(这里是shard0000)
此时登录shard0000(192.168.1.220:27100)可以看到数据
此时将users加入shard:
常用的就是:
对files_id,n 取hash key来分片。
搭建步骤
启动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来分片。
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- 分享微信开发Html5轻游戏中的几个坑
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- 如何在 Fedora 上安装 MongoDB 服务器
- ubuntu下chrome无法同步问题解决
- Ubuntu Linux使用体验
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法
- 以Ubuntu 9.04为例 将工作环境迁移到 Linux
- VirtualBox虚拟机XP与宿主机Ubuntu互访共享文件夹
- 从USB安装Ubuntu Server 10.04.3 图文详解
- Ubuntu 15.04 正式版发布下载
- Linux-Ubuntu 10.04安装Cadence-ic610 方法总结图解
- 如何在 Ubuntu 上安装 MongoDB
- Ubuntu 12.04和Windows 7双系统安装图解
- Ubuntu /home下中文目录如何修改成英文?
- 开机出现:grub rescue的修复方法