设为首页 收藏本站
查看: 1117|回复: 0

[经验分享] 一台主机搭建Centos7.2的mongodb3.4.2集群

[复制链接]

尚未签到

发表于 2018-10-25 08:46:23 | 显示全部楼层 |阅读模式
  这两天在做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 --port  10041  --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 --port  10042  --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 --port  10043  --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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626145-1-1.html 上篇帖子: MongoDB trouble shoot sharded clusters 下篇帖子: MongoDB Upgrade a Replica Set to 3.4
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表