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

mongodb集群搭建-分片

2016-01-15 15:24 453 查看
分片介绍

当存入mongo的数据很大的时候,我们需要选择将数据分片存放到不同的机器上。分片不同于副本集,副本集中主从存放的数据都一样,但是不同分片存放的数据是不同的,所有的分片组成了集群,存放着所有的数据。
配置服务器

配置服务器相当于集群的大脑,保存着集群和分片的元数据(个人理解和hbase的meta root表类似),即各分片包含哪些数据的信息

configsvr.conf内容如下:

dbpath=/home/upsmart/qianjc/mongodb/db/configdb

logpath=/home/upsmart/qianjc/mongodb/log/configdb.log

logappend=true

port=20001

fork=true

配置比较简单,不多做解释

./mongod --configsvr -f configsvr.conf

3个节点上都要启动
配置mongos进程

三个配置服务器处于运行状态,启动一个mongos进程供应用程序连接(不需要单独得连接mongod进程了),mongos是路由节点,客户端连接他之后获取数据,mongos会知道数据存放在哪个分片下,然后去取。

mongos.conf内容如下:

logpath=/home/upsmart/qianjc/mongodb/log/mongos.log

logappend=true

port=27117

fork=true

./mongos --configdb ip00:20001,ip05:20001,ip07:20001 -f mongos.conf

添加分片

首先按照上一篇搭建好一个mongo副本集,接下去将副本集转换为分片

连接到路由节点(mongos)

./mongo ip:27117 # 该ip是启动mongps进程那台服务器的ip

sh.addShard("mondeo/ip:27017") # 指定副本集的名字,和副本集中的某一个节点(其他节点可以感知到)

可以添加多个分片,再新建一个副本集按照上述方法添加分片

不推荐数据量小的情况下使用分片,这样会使得插入速度变慢(数据需要在节点中同步),理论上副本集对付千万级别的数据已经足够。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: