mongodb分布式集群搭建

一.mongo安装步骤

架构:共三台机器,node1,node2,node3,mongdb版本为 mongodb-linux-x86_64-enterprise-rhel62-3.4.13.tgz,可以到官网下载:

二.角色分配:

node1:shard01,shard01副本1,副本2,configServer01

node2:shard02,shard02副本1,副本2,configSever02,congfigServer03

node3:mongos

三.在node1上面mongodb shard配置:

[root@node1 data]# ll /etc/mongo*
-rw-r--r-- 1 root root 151 Apr 12 15:11 /etc/mongo1.conf
-rw-r--r-- 1 root root 151 Apr 12 15:11 /etc/mongo2.conf
-rw-r--r-- 1 root root 151 Apr 12 15:13 /etc/mongo3.conf
-rw-r--r-- 1 root root 327 Apr 12 15:40 /etc/mongo_config1.conf

/etc/mongo1.conf配置文件如下

---------------------------------------------------------------------------------------------------------------------
port=47027
dbpath=/data/mongodb1/mongo/
logpath=/data/mongodb1/log/47027.log
fork=true
shardsvr=true
directoryperdb=true
replSet=shard01
journal=true

------------------------------------------------------------------------------------------------------------------------

扫描二维码关注公众号,回复: 24892 查看本文章

启动:
/opt/mongodb-linux-x86_64-enterprise-rhel62-3.4.13/bin/mongod -f /etc/mongo1.cnf --fork &

访问:

mongo --port 47027

rs.initiate({_id:"shard01", members: [{_id: 1, host:"node1:47027"},{_id: 2, host:"node1:47028"},{_id: 3, host:"node1:47029","arbiterOnly":true}]}); ========分片初始化

同理在node2上也做同样工作:
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

rs.initiate({_id:"shard02", members: [{_id: 1, host:"node2:47027"},{_id: 2, host:"node2:47028"},{_id: 3, host:"node2:47029","arbiterOnly":true}]}); ========分片初始化

四.configserver配置:

[root@node1 data]# cat /etc/mongo_config1.conf

--------------------------------------------------------------------------------------------------------------------------------------
pidfilepath = /data/mongodb1/configsrv.pid
dbpath = /data/mongodb1/config/data
logpath = /data/mongodb1/config/log/congigsrv.log
logappend = true

bind_ip = 0.0.0.0
port = 47013
fork = true

#declare this is a config db of a cluster;
configsvr = true

#副本集名称
replSet=configs

#设置最大连接数
maxConns=20000

--------------------------------------------------------------------------------------------------------------------------------------

启动configServer:
/opt/mongodb-3.4.13/bin/mongod -f /etc/mongo_config1.conf --fork &

mongo --port 47013 进去添加config集群信息,主要目的是配置你的CFSVR名称,添加三个config信息,配置完成后,会自动显示一主两从,这里的配置是给后面mongos启动指定config使用

rs.initiate({_id : "configs",members : [{_id : 0, host : "node1:47013" },{_id : 1, host : "node2:47014" },{_id : 2, host : "node2:47015" }]})  =======config server初始化

五.mongos的配置:

[root@node3 data]# cat /etc/mongos.conf

----------------------------------------------------------------------------------------------------------
logpath = /data/mongodb/log/27017.log
logappend = true
port = 27017
fork = true

#监听的配置服务器,只能有1个或者3个 configs为配置服务器的副本集名字
configdb = configs/node1:47013,node2:47014,node3:47015

#设置最大连接数
maxConns=20000

--------------------------------------------------------------------------------------------------------------

启动:
/opt/mongodb-linux-x86_64-enterprise-rhel62-3.4.13/bin/mongos -f /usr/mongos.conf

mongo --port 27017 登录添加

在node1上:
sh.addShard("shard01/node1:47027,node1:47028,node1:47029") =======添加分片分别在每台对应机器上做

在node2上:
sh.addShard("shard02/node2:47027,node2:47028,node2:47029")

注意:ADD的时候,ARB也ADD进去,这里不需要特地指定仲裁,因为SHARD已经指定了。

至此mongo分布式集群搭建完毕:

六 后续:

利用JS批量写入数据:
for (var i = 1; i <= 25000; i++) db.test2.insert( { name : i+"mongoDB" } )

sh.enableSharding("testsharding") =============针对库开启分片

sh.shardCollection("testsharding.test2",{_id:'hashed'}) =============分片分键

db.test2.ensureIndex({"_id":1})   ===================建立索引

rs.slaveOk()

猜你喜欢

转载自www.cnblogs.com/gxc2015/p/8856460.html
今日推荐