ab520025520025 发表于 2018-10-25 08:46:23

一台主机搭建Centos7.2的mongodb3.4.2集群

  这两天在做mongodb集群的实验,然后写下这篇文章来总结一下也算是个笔记吧。
  机器有限,就在一台机器上面做了,还是台虚拟机。。。
  图就不画了(其实是画了,但是很难看就不帖出来了)
  IP:192.168.47.131
  #########这三台实例组成shard1ReplSet####################
  shard11:10011
  shard12:10012
  shard13:10013
  #########这三台实例组成shard2ReplSet####################
  Shard21:10021
  Shard22:10022
  Shard23:10023
  #########三台nongos和三台configsvr的端口信息############
  mongos   10041 10042 10043
  configsvr 10031 10032 10033
  #######################################################################
  以上是本次搭建的端口信息
  ##################################################################
  常规步骤:
  tar xf mongodb-linux-x86_64-rhel62-3.4.2.tgz解压
  mv mongodb-linux-x86_64-rhel62-3.4.2 /mongodb 移动到根目录并重命名
  添加环境变量(mongodb需要用到jdk,请自行安装,并添加环境变量)
  JAVA_HOME=/usr/java/jdk1.8.0_121
  CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  MONGO_HOME=/mongodb/bin
  创建本次集群需要的目录:
  mkdir -p /mongodb/data/{config1,config2,config3,shard1ReplSet11,shard1ReplSet12,shard1ReplSet13,shard2ReplSet21,shard2ReplSet22,shard2ReplSet23}
  mkdir -p /mongodb/logs/{config1,config3,mongos42,shard1ReplSet11,shard1ReplSet13,shard2ReplSet22,config2,mongos41,mongos43,shard1ReplSet12,shard2ReplSet21,shard2ReplSet23}
  创建log文件:
  touch /mongodb/logs/config1/config1.log
  touch /mongodb/logs/config2/config2.log
  touch /mongodb/logs/config3/config3.log
  touch /mongodb/logs/shard1ReplSet11/10011.log
  touch /mongodb/logs/shard1ReplSet12/10012.log
  touch /mongodb/logs/shard1ReplSet13/10013.log
  touch /mongodb/logs/shard2ReplSet21/10021.log
  touch /mongodb/logs/shard2ReplSet22/10022.log
  touch /mongodb/logs/shard2ReplSet23/10023.log
  touch /mongodb/logs/mongos41/10041.log
  touch /mongodb/logs/mongos42/10042.log
  touch /mongodb/logs/mongos43/10043.log
  开始啦
  1、分别启动各个configServer服务,分别占10031 10032 10033端口:
  mongod --configsvr --replSet cfgReplSet --dbpath /mongodb/data/config1 --port 10031 --logpath /mongodb/logs/config1/config1.log --fork
  mongod --configsvr --replSet cfgReplSet --dbpath /mongodb/data/config2 --port 10032 --logpath /mongodb/logs/config2/config2.log --fork
  mongod --configsvr --replSet cfgReplSet --dbpath /mongodb/data/config3 --port 10033 --logpath /mongodb/logs/config3/config3.log --fork
  看到提示successfully就是成功啦
  连接到任意一台configsvr去创建configsvr的副本集(Replica Set)
  连接:mongo --host 192.168.47.131 --port 10031
  创建:rs.initiate({_id:"cfgReplSet", configsvr:true, members:[{_id:0,host:"192.168.47.131:10031"},{_id:1,host:"192.168.47.131:10032"},{_id:2,host:"192.168.47.131:10033"}]})
  上面的端口是上面已经规划好了的,这个里面填的是configsvr的IP和端口
  2、创建两个shard的副本集以及初始化
  创建第一个Replica Set
  以集群的方式启动分片shard11,shard12,shard13占10011,10012,10013端口:
  mongod --shardsvr --replSet shard1ReplSet --dbpath /mongodb/data/shard1ReplSet11 --port 10011 --logpath /mongodb/logs/shard1ReplSet11/10011.log --fork
  mongod --shardsvr --replSet shard1ReplSet --dbpath /mongodb/data/shard1ReplSet12 --port 10012 --logpath /mongodb/logs/shard1ReplSet12/10012.log --fork
  mongod --shardsvr --replSet shard1ReplSet --dbpath /mongodb/data/shard1ReplSet13 --port 10013 --logpath /mongodb/logs/shard1ReplSet13/10013.log --fork
  连接任意一台分片服务器
  mongo --host 192.168.47.131 --port 10011
  将上面的三台启动好了的分片设置为一个Raplica Set
  rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"192.168.47.131:10011"},{_id:1,host:"192.168.47.131:10012"},{_id:2,host:"192.168.47.131:10013"}]})
  创建第二个Replica Set
  以集群的方式启动分片shard21,shard22,shard23,占10021,10022,10023端口:
  mongod --shardsvr --replSet shard2ReplSet --port 10021 --dbpath /mongodb/data/shard2ReplSet21 --logpath /mongodb/logs/shard2ReplSet21/10021.log --fork
  mongod --shardsvr --replSet shard2ReplSet --port 10022 --dbpath /mongodb/data/shard2ReplSet22 --logpath /mongodb/logs/shard2ReplSet22/10022.log --fork
  mongod --shardsvr --replSet shard2ReplSet --port 10023 --dbpath /mongodb/data/shard2ReplSet23 --logpath /mongodb/logs/shard2ReplSet23/10023.log --fork
  连接任意一台分片服务器
  mongo --host 192.168.47.131 --port 10021
  将上面的三台分片设置为Replica Set
  rs.initiate({_id:"shard2ReplSet",members:[{_id:0,host:"192.168.47.131:10021"},{_id:1,host:"192.168.47.131:10022"},{_id:2,host:"192.168.47.131:10023"}]})
  3、分别启动mongos,分别占:10041 10042 10043端口:
  启动服务:
  mongos --configdb cfgReplSet/192.168.47.131:10031,192.168.47.131:10032,192.168.47.131:10033 --port10041--logpath/mongodb/logs/mongos41/10041.log --fork
  mongos --configdb cfgReplSet/192.168.47.131:10031,192.168.47.131:10032,192.168.47.131:10033 --port10042--logpath/mongodb/logs/mongos42/10042.log --fork
  mongos --configdb cfgReplSet/192.168.47.131:10031,192.168.47.131:10032,192.168.47.131:10033 --port10043--logpath/mongodb/logs/mongos43/10043.log --fork
  上面填的是configsvr的信息(参照前面configsvr的定义)
  登录一台路由:
  mongo --host 192.168.47.131 --port 10041
  添加分片到集群
  sh.addShard("shard1ReplSet/192.168.47.131:10011,192.168.47.131:10012,192.168.47.131:10013")
  sh.addShard("shard2ReplSet/192.168.47.131:10021,192.168.47.131:10022,192.168.47.131:10023")
  将上面做的两个Replica Set 添加到路由
  上面都没报错的话,mongodb的Replica Set和sharding就已经搭建好了。三个configsvr,mongos和六个分片随便down哪个都不会影响到数据
  测试(连接到路由去测,如何登录路由看上面)
  创建一个数据库
  sh.enableSharding("test")

  sh.shardCollection("test.Log", {>  插入10W条数据
  use test
  for(var i = 1; i
页: [1]
查看完整版本: 一台主机搭建Centos7.2的mongodb3.4.2集群