MongoDB集群搭建(整合-全网最详细,亲测可用版)
参考2篇文章:https://blog.csdn.net/zhangcongyi420/article/details/92738646流程清晰,但无详细说明。https://blog.csdn.net/wang1144/article/details/53964999流程不够清晰,有详细说明。含有【3种】集群的搭建方式。我整合了他们的流程,并且通过亲身实践搭建完毕集群。并且对部分做了补充。集群搭
参考2篇文章:
https://blog.csdn.net/zhangcongyi420/article/details/92738646 流程清晰,但无详细说明。
https://blog.csdn.net/wang1144/article/details/53964999 流程不够清晰,有详细说明。含有【3种】集群的搭建方式。
我整合了他们的流程,并且通过亲身实践搭建完毕集群。并且对部分做了补充。
集群搭建有3种方式,Replica Set / Sharding / Master-Slaver。这里采用的是最常用的Replica Set的方式。
ReplicaSet角色介绍
master:主节点,负责读写查询数据
salve:从节点,负责备份数据,可以设置为提供查询数据的功能,从而减少主节点的查询压力
arbite:仲裁节点,监控功能,当主节点挂了,会指定某个从节点去代替主节点
前置准备
3台机器:192.168.31.33
192.168.31.34
192.168.31.35
mongodb安装包:
在linux中通过命令下载资源(Centos7的系统、4.4.5的MongoDB版本)
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.5.tgz
配置操作
【3台】机器执行同样的操作:
mkdir /opt/software 创建用于存放软件包的目录
mkdir /opt/hadoop 创建用于存放安装包的目录
在software目录下面获取mongodb安装包,并且【分给】其他节点的software目录下
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.5.tgz
分发给其他节点的software目录下
解压至/opt/hadoop目录
cd /opt/software 切换目录
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.5.tgz -C /opt/hadoop/ 解压
cd /opt/hadoop
mv MongoDB解压后的名称 mongo4.4 改名字-好记又好配
【33节点】在mongoDB目录中,创建相关目录
mkdir -p data/master 数据存文的目录
mkdir logs 日志目录
mkdir conf 配置目录
cd logs
touch master.log 日志文件
cd conf
touch mongodb.conf 配置文件
【34节点】
mkdir -p data/slave
mkdir logs
mkdir conf
cd logs
touch slave.log
cd conf
touch mongodb.conf
【35节点】
mkdir -p data/arbite
mkdir logs
mkdir conf
cd logs
touch arbite.log
cd conf
touch mongodb.conf
配置分别如下:
33节点的mongodb.conf
#master配置
dbpath=/opt/hadoop/mongodb4.4/data/master 数据存放路径
logpath=/opt/hadoop/mongodb4.4/logs/master.log 日志路径
logappend=true 以追加的方式记录日志
bind_ip=192.168.31.33 mongoDB进程所绑定的ip地址
port=27017 端口号,默认端口号为27017
fork=true 以后台方式运行进程
#noprealloc=true 4.33版本后已经取消
replSet=test 集群名称
34节点的mongodb.conf
#slave配置
dbpath=/opt/hadoop/mongodb4.4/data/slave
logpath=/opt/hadoop/mongodb4.4/logs/slave.log
logappend=true
bind_ip=192.168.31.34
port=27017
fork=true
#noprealloc=true
replSet=test
35节点的mongodb.conf
#仲裁节点配置
dbpath=/opt/hadoop/mongodb4.4/data/arbite
logpath=/opt/hadoop/mongodb4.4/logs/arbite.log
logappend=true
bind_ip=192.168.31.35
port=27018 【注意】仲裁节点我给的端口号是【18】
fork=true
#noprealloc=true
replSet=test
启动
3台节点【分别】启动
/opt/hadoop/mongodb4.4/bin/mongod -f /opt/hadoop/mongodb4.4/conf/mongodb.conf
集群绑定
#任意选择一个节点连接-连接到主节点
./mongo 192.168.31.33:27017
创建配置变量cfg(你也可以任意起名称,不过我们常用的配置就叫conf,或者config,cfg等)
cfg={_id:"test", members: [ {_id:0,host:'192.168.31.33:27017',priority:2} ,{_id:1,host:'192.168.31.34:27017',priority:1} ,{_id:2,host:'192.168.31.35:27018',arbiterOnly:true}]};
解释:
【外】层 _id:为之前mongdb.conf中设置的集群名称
members:集群内容的配置信息
【里】层_id:代表的每个节点的id,不能相同
host:指定的是节点的ip地址与端口号
priority:指的是权重,权重最高的是主节点 ,权重大小的判定(数字最大>数字小的>没有写权重属性的)
arbiterOnly:代表是否作为仲裁节点。
初始化集群-让配置生效
rs.initiate(cfg)
当你能看到代表成功ok:1
查看集群状态
rs.status();
能看到3个节点的信息,代表成功
集群搭建结束
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)