1.环境准备
1)虚拟机hadoop104、hadoop105、hadoop106,hadoop-2.7.2
2)mongodb-linux-x86_64-3.4.2
2.向/etc/profile添加环境变量
export MONGODB_HOME=/opt/module/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
3.新建文件夹和文件
1)在mongodb/目录下新建文件夹: mkdir logs/ data/ conf/
2)在mongodb/logs/目录下新建文件:touch mongodb.log
在mongodb/conf/目录下新建文件:touch mongodb.conf
4.编辑mongodb/mongodb.conf文件
hadoop104配置
1 #hadoo104配置
2 dbpath=/opt/module/mongodb/data #存放数据目录
3 logpath=/opt/module/mongodb/logs/mongodb.log #日志数据目录
4 pidfilepath=/opt/module/mongodb/mongodb.pid #pid文件
5 #keyFile=/opt/module/mongodb/mongodb.key #节点之间用于验证文件,内容必须保持一致,权限600,仅Replica Set 模式有效
6 directoryperdb=true #数据库是否分目录存放
7 logappend=true #日志追加方式存放
8 oplogSize=100 #设置oplog的大小(MB)
9 replSet=testdb #Replica Set的名字
10 bind_ip=123.45.67.8 #mongodb绑定的ip地址
11 port=27017 #端口
12 #auth=true #是否开启验证
13 fork=true #守护进程运行,创建进程
14 noprealloc=true #是否禁用数据文件预分配(往往影响性能)
15 journal=true #启用日志选项(将mongodb数据操作写入该文件)
16 #maxConns=4000 #最大连接数,默认2000
hadoop105配置
#hadoo105配置
dbpath=/opt/module/mongodb/data #存放数据目录
logpath=/opt/module/mongodb/logs/mongodb.log #日志数据目录
pidfilepath=/opt/module/mongodb/mongodb.pid #pid文件
#keyFile=/opt/module/mongodb/mongodb.key #节点之间用于验证文件,内容必须保持一致,权限600,仅Replica Set 模式有效
directoryperdb=true #数据库是否分目录存放
logappend=true #日志追加方式存放
oplogSize=100 #设置oplog的大小(MB)
replSet=testdb #Replica Set的名字
bind_ip=123.45.67.9 #mongodb绑定的ip地址
port=27018 #端口
#auth=true #是否开启验证
fork=true #守护进程运行,创建进程
noprealloc=true #是否禁用数据文件预分配(往往影响性能)
journal=true #启用日志选项(将mongodb数据操作写入该文件)
#maxConns=4000 #最大连接数,默认2000
hadoop106配置
#hadoo106配置
dbpath=/opt/module/mongodb/data #存放数据目录
logpath=/opt/module/mongodb/logs/mongodb.log #日志数据目录
pidfilepath=/opt/module/mongodb/mongodb.pid #pid文件
#keyFile=/opt/module/mongodb/mongodb.key #节点之间用于验证文件,内容必须保持一致,权限600,仅Replica Set 模式有效
directoryperdb=true #数据库是否分目录存放
logappend=true #日志追加方式存放
oplogSize=100 #设置oplog的大小(MB)
replSet=testdb #Replica Set的名字
bind_ip=123.45.67.10 #mongodb绑定的ip地址
port=27019 #端口
#auth=true #是否开启验证
fork=true #守护进程运行,创建进程
noprealloc=true #是否禁用数据文件预分配(往往影响性能)
journal=true #启用日志选项(将mongodb数据操作写入该文件)
#maxConns=4000 #最大连接数,默认2000
5.启动配置文件(三台虚拟机都需启动)
/opt/module/mongodb/bin/mongod -f /opt/module/mongodb/conf/mongodb.conf
6.配置主、备、仲裁节点(在hadoop104的mongodb/bin连接到节点)
1)连接主节点
./mongo hadoop104:27017
2)配置
cfg={ _id:"testdb", members:[ {_id:0,host:'hadoop104:27017',priority:1}, {_id:1,host:'hadoop105:27018',priority:1}, {_id:2,host:'hadoop106:27019',priority:0,arbiterOnly:true}] };
3)生效配置文件
rs.initiate(cfg)
4)查看配置状态
rs.status()
如果配置生效会包含如下信息:
{
"set" : "testdb",
"date" : ISODate("2020-11-07T02:26:43.565Z"),
"myState" : 1,
"term" : NumberLong(13),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"appliedOpTime" : {
"ts" : Timestamp(1604715999, 1),
"t" : NumberLong(13)
},
"durableOpTime" : {
"ts" : Timestamp(1604715999, 1),
"t" : NumberLong(13)
}
},
"members" : [
{
"_id" : 1,
"name" : "hadoop104:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1195,
"optime" : {
"ts" : Timestamp(1604715999, 1),
"t" : NumberLong(13)
},
"optimeDate" : ISODate("2020-11-07T02:26:39Z"),
"electionTime" : Timestamp(1604715098, 1),
"electionDate" : ISODate("2020-11-07T02:11:38Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 2,
"name" : "hadoop105:27018",
"health" : 1,
"state" : 3,
"stateStr" : "RECOVERING",
"uptime" : 909,
"optime" : {
"ts" : Timestamp(1603963180, 7553),
"t" : NumberLong(6)
},
"optimeDurable" : {
"ts" : Timestamp(1603963180, 7553),
"t" : NumberLong(6)
},
"optimeDate" : ISODate("2020-10-29T09:19:40Z"),
"optimeDurableDate" : ISODate("2020-10-29T09:19:40Z"),
"lastHeartbeat" : ISODate("2020-11-07T02:26:43.139Z"),
"lastHeartbeatRecv" : ISODate("2020-11-07T02:26:40.756Z"),
"pingMs" : NumberLong(0),
"configVersion" : 1
},
{
"_id" : 3,
"name" : "hadoop106:27019",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 905,
"lastHeartbeat" : ISODate("2020-11-07T02:26:43.139Z"),
"lastHeartbeatRecv" : ISODate("2020-11-07T02:26:42.707Z"),
"pingMs" : NumberLong(0),
"configVersion" : 1
}
],
"ok" : 1
}