mongo集群部署

部署条件

两台服务器A,B(A与B能互相ping通)

mongo版本3.4

部署结构

1个路由mongos节点(服务器A,27018端口)

3个元配置config节点为副本集(服务器A,20000/21000/24000端口)

2个分片shard节点(服务器A和B,27050端口)

步骤说明

安装mongo

把mongo_20000.conf、mongo_21000.conf、mongo_24000.conf、mongo_27050.conf、mongo_27018.conf 5个配置文件放至A服务器/etc下,A服务器根目录下创建/sensing/cluster文件夹,把mongodb-linux-x86_64-rhel70-v3.4-latest.tgz压缩文件和install_mongo_cluster.sh、start_mongo_cluster.sh脚本放至cluster文件夹下,执行脚本

cd /sensing/cluster
sh install_mongo_cluster.sh

把服务器B中的mongo_27050.conf配置文件放到B服务器/etc下,B服务器根目录下创建/sensing/cluster文件夹,把mongodb-linux-x86_64-rhel70-v3.4-latest.tgz和install_mongo_shard.sh、start_mongo_shard.sh放至cluster文件夹下,执行脚本

cd /sensing/cluster
sh install_mongo_shard.sh

启动mongo

首先启动A服务器配置节点,执行脚本

cd /sensing/cluster
sh start_mongo_cluster.sh

成功后查看4个mongo进程是否存在,如果存在继续向下执行配置副本集:<ip要改为对应服务器ip>

cd /sensing/cluster/config/mongodb-20000/bin
./mongo --host ip --port 20000
> use admin
> var config = {_id:'config',members:[{_id:0,host:'ip:20000'},{_id:1,host:'ip:21000'},{_id:2,host:'ip:24000'}]} 
> rs.initiate(config)

等待10s左右
出现”config:PRIMARY>”输入exit退出,副本集配置并启动完成。

接着配置A服务器分片节点:

cd /sensing/cluster/shard/mongodb-27050/bin
./mongo --host ip --port 27050
> use admin
> var config = {_id:'shard1',members:[{_id:0,host:'ip:27050'}]}
> rs.initiate(config)

等待10s左右,回车出现”shard1:PRIMARY>”输入exit退出,A服务器分片节点配置并启动完成。

配置B服务器分片节点,执行脚本

cd /sensing/cluster
sh start_mongo_shard.sh

使用

ps -ef | grep mongo

命令查看进程是否存在,如果存在配置B服务器分片节点:

cd /sensing/cluster/shard/mongodb-27050/bin
./mongo --host ip --port 27050
> use admin
> var config = {_id:'shard2',members:[{_id:0,host:'ip:27050'}]}
> rs.initiate(config)

等待10s左右,回车出现”shard2:PRIMARY>”输入exit退出,B服务器分片节点配置并启动完成。

最后配置A服务器路由节点:

cd /sensing/cluster/route/mongodb-27018/bin
./mongos -f /etc/mongo_27018.conf
进入路由节点
cd /sensing/cluster/route/mongodb-27018/bin
./mongo --host ip --port 27018
mongos> use admin 
mongos> sh.addShard("shard1/ip:27050")	[注:A服务器ip]
mongos> sh.addShard("shard2/ip:27050")	[注:B服务器ip]
mongos> sh.status()

接着配置数据库和集合:

mongos> sh.enableSharding("bigdata")
mongos> sh.shardCollection("bigdata.faceCapture",{"fcap_id":"hashed"})
mongos> use bigdata
mongos> db.faceCapture.ensureIndex({ "fcap_time" : -1,"fcap_id" : -1, "fcap_dcid" : 1 })

至此不加认证的集群部署完成

集群认证

创建集群用户

进入A服务器路由节点:

cd /sensing/cluster/route/mongodb-27018/bin
./mongo --host ip --port 27018
mongos> use admin
mongos> db.createUser({user : "shenxing", pwd : "shenxing", roles : [{role : "root", db : "admin"}]})
mongos> use bigdata
mongos> db.createUser({ user:"shenxing", pwd:"shenxing",roles:[{role:"dbOwner", db:"bigdata"},{ role:"clusterAdmin", db:"admin" } ]})

上述的两个用户,需要在每个结点(每个分片结点,每个路由结点)上都要创建

开启集群认证

首先关闭mongo进程,关闭顺序为路由节点 -> 配置节点 -> 分片节点的顺序,依次关闭各节点的进程

kill -9 进程号

把密钥文件keyfile.dat放至A服务器和B服务器/etc文件夹各一份,执行

chmod 600 keyfile.dat

把权限设置为600;

在每个节点(路由节点,元配置节点,分片节点)的配置文件中加入keyFile的配置项

keyFile=/etc/keyfile.dat

在每个元配置节点和分片节点(即除了mongos结点)的配置文件中加入auth=true的配置项

auth=true

重启集群

执行A服务器

start_mongo_cluster.sh

执行B服务器

start_mongo_shard.sh

启动A服务器路由节点

cd /sensing/cluster/route/mongodb-27018/bin
./mongos -f /etc/mongo_27018.conf

启动完毕

验证集群的认证

进入路由节点

cd /sensing/cluster/route/mongodb-27018/bin
./mongo --host ip --port 27018
mongos> use bigdata
mongos> db.auth(“shenxing”,”shenxing”)

验证认证完毕

配置文件请下载本人资源《mongo集群 -说明文档》

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值