Centos7/Centos8 Mongodb4.2分片集群配置(同一主机)
2020-07-12 12:29
183 查看
本文为同一主机的示范,要调整多服务器可根据情况进行更改
服务 | 实例 | 端口 |
---|---|---|
mongos路由 | mongos | 20000 |
config服务器1 | config1 | 20001 |
config服务器2 | config2 | 20002 |
config服务器3 | config3 | 20003 |
shard分片主1 | shard1-1 | 20011 |
shard分片备1 | shard2-1 | 20012 |
shard分片主2 | shard2-1 | 20021 |
shard分片备2 | shard2-2 | 20022 |
shard分片主3 | shard3-1 | 20031 |
shard分片备3 | shard3-2 | 20032 |
安装mongos
添加源
vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org] name = MongoDB Repository baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck = 1 enabled = 1 gpgkey = https://www.mongodb.org/static/pgp/server-4.0.asc
yum -y install mongodb-org groupadd mongodb useradd -g mongodb mongodb
1、创建数据目录
mkdir /data/mongodb mkdir /data/mongodb/mongos mkdir -p /data/mongodb/conf/db{1,2,3} /data/mongodb/conf/log mkdir /data/mongodb/shard{1,2,3} mkdir /data/mongodb/shard{1,2,3}/db{1,2,3} mkdir /data/mongodb/shard{1,2,3}/log
2、目录权限
chown -R mongodb:mongodb /data/mongodb chmod -R 777 /data/mongodb
查看是否有进程运行
ps aux|grep mongo
3、启动config服务器
分别启动三台服务器的配置服务
mongod -f /data/mongodb/conf/config1.yaml mongod -f /data/mongodb/conf/config2.yaml mongod -f /data/mongodb/conf/config3.yaml
相关配置文件内容:
config1.yaml
sharding: clusterRole: configsvr replication: replSetName: config net: port: 20001 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/conf/log/config1.log storage: dbPath: /data/mongodb/conf/db1 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodconfig1.pid timeZoneInfo: /usr/share/zoneinfo
config2.yaml
sharding: clusterRole: configsvr replication: replSetName: config net: port: 20002 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/conf/log/config2.log storage: dbPath: /data/mongodb/conf/db2 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodconfig2.pid timeZoneInfo: /usr/share/zoneinfo
config3.yaml
sharding: clusterRole: configsvr replication: replSetName: config net: port: 20003 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/conf/log/config.log storage: dbPath: /data/mongodb/conf/db3 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodconfig3.pid timeZoneInfo: /usr/share/zoneinfo
初始化配置服务器
rs.initiate( { _id: "config", configsvr: true, members: [ { _id : 0, host : "127.0.0.1:20001" }, { _id : 1, host : "127.0.0.1:20002" }, { _id : 2, host : "127.0.0.1:20003" } ] } )
为conf集群添加root用户
use admin; db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } );
4、启动分片
mongod -f /data/mongodb/conf/shard1-1.yaml mongod -f /data/mongodb/conf/shard1-2.yaml mongod -f /data/mongodb/conf/shard2-1.yaml mongod -f /data/mongodb/conf/shard2-2.yaml mongod -f /data/mongodb/conf/shard3-1.yaml mongod -f /data/mongodb/conf/shard3-2.yaml
相关配置文件:
shard1-1.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard1 net: port: 20011 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard1/log/shard1-1.log storage: dbPath: /data/mongodb/shard1/db1 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard1-1.pid timeZoneInfo: /usr/share/zoneinfo
shard1-2.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard2 net: port: 20012 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard1/log/shard1-2.log storage: dbPath: /data/mongodb/shard1/db2 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard1-2.pid timeZoneInfo: /usr/share/zoneinfo
shard2-1.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard1 net: port: 20021 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard2/log/shard1-1.log storage: dbPath: /data/mongodb/shard2/db1 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard2-1.pid timeZoneInfo: /usr/share/zoneinfo
shard2-2.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard2 net: port: 20022 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard2/log/shard2-2.log storage: dbPath: /data/mongodb/shard2/db2 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard2-2.pid timeZoneInfo: /usr/share/zoneinfo
shard3-1.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard1 net: port: 20031 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard3/log/shard3-1.log storage: dbPath: /data/mongodb/shard3/db1 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard3-1.pid timeZoneInfo: /usr/share/zoneinfo
shard3-2.yaml
sharding: clusterRole: shardsvr replication: replSetName: shard2 net: port: 20032 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/shard3/log/shard3-2.log storage: dbPath: /data/mongodb/shard3/db2 journal: enabled: true processManagement: fork: true pidFilePath: /var/run/mongodb/mongodshard3-2.pid timeZoneInfo: /usr/share/zoneinfo
启动分片副本集Ⅰ
登录20011初始化(一主一从一仲裁)
rs.initiate( { _id : "shard1", members: [ { _id : 0, host : "127.0.0.1:20011" ,priority : 2 }, { _id : 1, host : "127.0.0.1:20021" ,priority : 1 }, { _id : 2, host : "127.0.0.1:20031" ,arbiterOnly :true } ] } )
为share1添加root用户(必须在PRIMARY状态下,可以按回车键可以看到PRIMARY)
use admin; db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } );
启动分片副本集Ⅱ
登录20012初始化(一主一从一仲裁)
rs.initiate( { _id : "shard2", members: [ { _id : 0, host : "127.0.0.1:20012" ,priority : 2 }, { _id : 1, host : "127.0.0.1:20022" ,priority : 1 }, { _id : 2, host : "127.0.0.1:20032" ,arbiterOnly :true } ] } )
为share2添加root用户(必须在PRIMARY状态下,可以按回车键可以看到PRIMARY)
use admin; db.createUser( { user: "root", pwd: "root", roles: [ { role: "root", db: "admin" } ] } );
5、启动路由服务器
mongos -f /data/mongodb/conf/mongos.yaml
mongos.yaml
sharding: configDB: config/127.0.0.1:20001,127.0.0.1:20002,127.0.0.1:20003 net: port: 20000 bindIp: 0.0.0.0 systemLog: destination: file logAppend: true path: /data/mongodb/conf/log/mongos.log processManagement: fork: true pidFilePath: /var/run/mongodb/mongos.pid timeZoneInfo: /usr/share/zoneinfo
连接到mongo路由: 这里的登录密码就是config集群配置的用户名和密码;端口为定义的20000,使用root账户登陆
use admin; db.auth('root','root');
查看登陆是否成功
添加shard分片集群
把shard1、shard2分片集群都添加进去,每个分片添加一个节点即可,主 从都可以;
sh.addShard( "shard1/127.0.0.1:20011"); sh.addShard( "shard2/127.0.0.1:20012");
查看集群状态
sh.status()
6、开启均衡器和分片功能
开启均衡器:
sh.startBalancer()
查看结果:
sh.status()
开启文档分片并测试
use admin; show dbs; db.runCommand({enablesharding:"mydb"}) sh.enableSharding("mydb"); //设置world为分片 use world sh.enableSharding("world"); //设置world为分片 sh.shardCollection("world.tiles",{name:"hashed"}); //设置分片集** for (var i=0;i<100000;i++) db.world.insert({name:"zs"+i,age:i}); //插入数据 db.teacher.find();//查看数据
相关文章推荐
- 【转】搭建高可用mongodb集群(一)——配置mongodb
- 配置MongoDB3.04集群分片
- 配置集群主机的互信任关系
- 转:mongodb分片集群(sharding with replica set)配置
- 配置MongoDB集群分片(一)
- Kafka集群配置使用主机名,windows无法访问
- springboot和mongoDB分片配置 集群配置
- 实例:Mongodb集群配置过程
- Mongodb集群配置(sharding with replica set)
- mongoDB集群配置
- 搭建高可用mongodb集群(一)——配置mongodb
- MongoDB集群配置
- hadoop实战-05.配置hadoop小集群(3台主机)
- mongoDB分片集群配置详解
- mongodb——mongodb集群安装配置使用*
- MongoDB 分片+副本 集群配置
- 搭建高可用mongodb集群(一)——配置mongodb
- 搭建高可用mongodb集群(一)——配置mongodb
- MongoDB集群配置(一)
- mongodb集群(一)——配置mongodb