参考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个节点的信息,代表成功

 

集群搭建结束

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐