手把手搭建集群系列(三)——Mongodb
2017-06-04 22:39
405 查看
Mongodb集群配置
所需资源
Mongodb/mongodb-linux-x86_64-rhel70-3.4.4.tgz
下载地址 -> https://www.mongodb.com/download-center?jmp=nav#community版本 -> RHEL 7 Linux 64-bit x64
0.配置之前
0.1 复制CentOS附件包内的Mongodb文件夹至/usr/local/server0.2 Mongodb集群暂没有完美更换IP/主机名的解决方案,务必使用域名进行配置
0.3 分片副本集群信息
分片副本集1
mongo2.tianjie.group:30001
mongo3.tianjie.group:30001
mongo4.tianjie.group:30001
分片副本集2
mongo2.tianjie.group:30002
mongo3.tianjie.group:30002
mongo4.tianjie.group:30002
分片副本集3
mongo2.tianjie.group:30003
mongo3.tianjie.group:30003
mongo4.tianjie.group:30003
0.3 配置副本集信息
配置副本集1
mongo1.tianjie.group:20001
mongo1.tianjie.group:20002
mongo1.tianjie.group:20003
0.4 路由集群信息
路由节点1 -> mongo0.tianjie.group:10001
路由节点2 -> mongo0.tianjie.group:10002
路由节点3 -> mongo0.tianjie.group:10003
1.释放资源包
1.1 解压Mongodb资源包cd /usr/local/server/Mongodb tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz
1.2 重命名资源包名称
mv mongodb-linux-x86_64-rhel70-3.4.4 Mongodb
2.构建分片副本集群(每个副本集由奇数个节点构成)
执行服务器:mongo2/3/4
2.1 释放资源包(执行上述1中步骤)2.2 创建资源目录
cd /usr/local/server/Mongodb/Mongodb mkdir shard{1,2,3} mkdir shard{1,2,3}/data mkdir shard{1,2,3}/log
2.3 打开分片服务
cd /usr/local/server/Mongodb/Mongodb/bin ./mongod --shardsvr --replSet shard1ReplSet --port 30001 --dbpath /usr/local/server/Mongodb/Mongodb/shard1/data --logpath /usr/local/server/Mongodb/Mongodb/shard1/log/shard1.log --fork --nojournal ./mongod --shardsvr --replSet shard2ReplSet --port 30002 --dbpath /usr/local/server/Mongodb/Mongodb/shard2/data --logpath /usr/local/server/Mongodb/Mongodb/shard2/log/shard2.log --fork --nojournal ./mongod --shardsvr --replSet shard3ReplSet --port 30003 --dbpath /usr/local/server/Mongodb/Mongodb/shard3/data --logpath /usr/local/server/Mongodb/Mongodb/shard3/log/shard3.log --fork --nojournal
2.4 防火墙配置(打开30001,30002,30003端口)
2.5 在mongo2/3/4.tianjie.group上分别执行2.1-2.4步骤
2.6 配置副本集信息
下述命令在mongo2/3/4任意一台机器上执行
配置分片副本集1
./mongo --host mongo2.tianjie.group --port 30001 rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30001"},{_id:1,host:"mongo3.tianjie.group:30001"},{_id:2,host:"mongo4.tianjie.group:30001"}]})
配置分片副本集2
./mongo --host mongo2.tianjie.group --port 30002 rs.initiate({_id:"shard2ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30002"},{_id:1,host:"mongo3.tianjie.group:30002"},{_id:2,host:"mongo4.tianjie.group:30002"}]})
配置分片副本集3
./mongo --host mongo2.tianjie.group --port 30003 rs.initiate({_id:"shard3ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30003"},{_id:1,host:"mongo3.tianjie.group:30003"},{_id:2,host:"mongo4.tianjie.group:30003"}]})
3.构建配置副本集(每个副本集由奇数个节点构成)
执行服务器:mongo1
3.1 释放资源包(执行上述1中步骤)3.2 创建资源目录
cd /usr/local/server/Mongodb/Mongodb mkdir config{1,2,3} mkdir config{1,2,3}/data mkdir config{1,2,3}/log
3.3 打开配置服务
cd /usr/local/server/Mongodb/Mongodb/bin ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config1/data --logpath /usr/local/server/Mongodb/Mongodb/config1/log/config1.log --port 20001 --fork ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config2/data --logpath /usr/local/server/Mongodb/Mongodb/config2/log/config2.log --port 20002 --fork ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config3/data --logpath /usr/local/server/Mongodb/Mongodb/config3/log/config3.log --port 20003 --fork
3.4 防火墙配置(打开20001,20002,20003端口)
3.5 配置副本集信息
./mongo --host mongo1.tianjie.group --port 20001 rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"mongo1.tianjie.group:20001"},{_id:1,host:"mongo1.tianjie.group:20002"},{_id:2,host:"mongo1.tianjie.group:20003"}]})
4.构建路由服务集群
执行服务器:mongo0
4.1 释放资源包(执行上述1中步骤)4.2 创建资源目录
cd /usr/local/server/Mongodb/Mongodb mkdir mongos{1,2,3} mkdir mongos{1,2,3}/log
4.3 打开路由服务(在路由服务组的每一个节点上执行)
cd /usr/local/server/Mongodb/Mongodb/bin ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10001 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10002 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10003 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
4.4 防火墙配置(打开10001,10002,10003端口)
4.5 连接路由服务组中任意节点
./mongo --host mongo0.tianjie.group --port 10001
4.6 添加分片副本集
该命令须在连接路由服务组任意节点后,在mongod shell中执行
sh.addShard("shard1ReplSet/mongo2.tianjie.group:30001,mongo3.tianjie.group:30001,mongo4.tianjie.group:30001") sh.addShard("shard2ReplSet/mongo2.tianjie.group:30002,mongo3.tianjie.group:30002,mongo4.tianjie.group:30002") sh.addShard("shard3ReplSet/mongo2.tianjie.group:30003,mongo3.tianjie.group:30003,mongo4.tianjie.group:30003")
5.创建分片集合
该命令须在连接路由服务组任意节点后,在mongod shell中执行
5.1 启用集合分片模式sh.enableSharding("DZTest")
5.2 设置分片信息
sh.shardCollection("DZTest.dzusrs", { DZUsr_Id:"hashed"})
6.集群重启(无法更改IP/主机名)
6.1 启动配置副本集cd /usr/local/server/Mongodb/Mongodb/bin ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config1/data --logpath /usr/local/server/Mongodb/Mongodb/config1/log/config1.log --port 20001 --fork ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config2/data --logpath /usr/local/server/Mongodb/Mongodb/config2/log/config2.log --port 20002 --fork ./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config3/data --logpath /usr/local/server/Mongodb/Mongodb/config3/log/config3.log --port 20003 --fork
6.2 启动分片副本集(群)
cd /usr/local/server/Mongodb/Mongodb/bin ./mongod --shardsvr --replSet shard1ReplSet --port 30001 --dbpath /usr/local/server/Mongodb/Mongodb/shard1/data --logpath /usr/local/server/Mongodb/Mongodb/shard1/log/shard1.log --fork --nojournal ./mongod --shardsvr --replSet shard2ReplSet --port 30002 --dbpath /usr/local/server/Mongodb/Mongodb/shard2/data --logpath /usr/local/server/Mongodb/Mongodb/shard2/log/shard2.log --fork --nojournal ./mongod --shardsvr --replSet shard3ReplSet --port 30003 --dbpath /usr/local/server/Mongodb/Mongodb/shard3/data --logpath /usr/local/server/Mongodb/Mongodb/shard3/log/shard3.log --fork --nojournal
6.3 启动路由服务器(组)
cd /usr/local/server/Mongodb/Mongodb/bin ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10001 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10002 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork ./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10003 --logpath /u 97da sr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
7.常用指令
7.1 查看集群状态连接路由服务组任意节点后,在mongod shell中执行
db.printShardingStatus();
7.2 查看表状态
连接路由服务组任意节点后,在mongod shell中执行
db.DZUsr.stats()
7.3 允许分片从节点读数据(不推荐)
连接分片副本集的从节点后,在mongod shell中执行
rs.slaveOk();
7.4 查看分片副本集状态
连接分片副本集的任意节点后,在mongod shell中执行
rs.status()
7.5 查看mongo进程
ps -A|grep mongo
7.6 查看mongo端口
netstat -unltp|grep mongo
相关文章推荐
- mongodb架构mongodb分片集群与简易搭建方案---ttlsa教程系列之mongodb
- mongodb架构mongodb分片集群与简易搭建方案---ttlsa教程系列之mongodb(六)
- mongodb架构mongodb分片集群与简易搭建方案---ttlsa教程系列之mongodb
- 快速搭建MongoDB分片集群
- 快速搭建MongoDB分片集群
- (六)hadoop系列之__hadoop分布式集群环境搭建
- Mongodb 集群搭建以及常见错误(不分块,分片,以及加验证)
- Mongodb集群搭建的三种方式
- mongodb基础系列—副本集具体搭建以及解说
- MongoDB学习之二----模拟shard集群搭建
- 菜鸟的Hadoop学习之路系列<一>:自己动手搭建Hadoop集群
- 搭建高可用mongodb集群(二)—— 副本
- MongoDB集群与LBS应用系列(二)--与Hadoop集成
- Mongodb集群搭建配置
- 搭建高可用mongodb集群(一)——配置mongodb
- (五)hadoop系列之__集群搭建SSH无密访问多台机器
- Mongodb集群搭建的三种方式
- 一分钟搭建mongodb架构Replica Set&Sharding―ttlsa教程系列之mongodb(七)
- 搭建高可用mongodb集群(一)——配置mongodb