【运维】mongodb集群的搭建

6 篇文章 0 订阅
5 篇文章 0 订阅

1.基本信息

  • 版本3.0.7
  • 安装机器三台机器
  • 账号hadoop
  • 源路径/opt/software/mongodb-linux-x86_64-3.0.7.tar.gz
  • 目标路径/opt/mongodb/ -> opt/mongodb-linux-x86_64-3.0.7
    -无依赖关系

2.安装过程

1).使用hadoop账号解压到/opt/hadoop/目录下:
[hadoop@test opt]$ su hadoop
[hadoop@test opt]$ cd /opt/software
[hadoop@test software]$ tar -zxvf mongodb-${version}.tar.gz  -C /opt
2).设置软链接:
[hadoop@test software]$ cd /opt
[hadoop@test opt]$ ln -s /opt/mongodb-${version} /opt/mongodb
3).配置环境变量,并使其生效:
[hadoop@test opt]$ vim /etc/profile

添加以下内容:

export MONGODB_HOME=/opt/mongodb
export PATH=${MONGODB_HOME}/bin:$PATH

使环境变量生效:

[hadoop@test opt]$ source /etc/profile
4).在/opt/hadoop/mongodb/目录下建立data相关目录(须保证目录为空):
[hadoop@test opt]$ mkdir -p /opt/mongodb/data/configsvr
[hadoop@test opt]$ mkdir -p /opt/mongodb/data/rs0-0
[hadoop@test opt]$ mkdir -p /opt/mongodb/data/rs1-0
5).在conf目录下修改configsvr.conf文件:
[hadoop@test opt]$ vim /opt/mongodb/conf/configsvr.conf

修改以下内容

path: "/opt/mongodb/logs/configsvr.log"
pidFilePath: "/opt/mongodb/configsvr.pid"
dbPath: "/opt/mongodb/data/configsvr"
6).继续修改mongos.conf文件:
[hadoop@test opt]$ vim /opt/mongodb/conf/mongos.conf

修改以下内容

path: "/opt/mongodb/logs/mongos.log"
pidFilePath: "/opt/mongodb/mongos.pid"
sharding.configDB: hadoop@test:27020,hadoop@test2:27020,hadoop@test3:27020
7).继续修改rs0.conf文件:
[hadoop@test opt]$ vim /opt/mongodb/conf/rs0.conf

修改以下内容

path: "/opt/mongodb/logs/rs0-0.log"
pidFilePath: "/opt/mongodb/rs0-0.pid"
dbPath: "/opt/mongodb/data/rs0-0"
8).继续修改rs1.conf文件:
[hadoop@test opt]$ vim /opt/mongodb/conf/rs1.conf

修改以下内容

path: "/opt/mongodb/logs/rs1-0.log"
pidFilePath: "/opt/mongodb/rs1-0.pid"
dbPath: "/opt/mongodb/data/rs1-0"
9).在hadoop@test上复制mongodb到hadoop@test2机器并按照步骤3修改环境变量:
[hadoop@test opt]$ scp -r /opt/mongodb-${version} hadoop@test2:/opt
[hadoop@test2 opt]$ ln -s /opt/mongodb-${version} /opt/mongodb
[hadoop@test2 opt]$ vim /etc/profile

添加以下内容:

export MONGODB_HOME=/opt/mongodb
export PATH=${MONGODB_HOME}/bin:$PATH

使环境变量生效:

[hadoop@test hadoop]$ source /etc/profile
10).修改data目录下的文件夹名:
[hadoop@test2 opt]$ mv /opt/mongodb/data/rs0-0 /opt/mongodb/data/rs0-1
[hadoop@test2 opt]$ mv /opt/mongodb/data/rs1-0 /opt/mongodb/data/rs1-1
11).在hadoop@test2上修改rs0.conf文件:
[hadoop@test2 opt]$ vim /opt/mongodb/conf/rs0.conf

修改以下内容

path: "/opt/mongodb/logs/rs0-1.log"
pidFilePath: "/opt/mongodb/rs0-1.pid"
dbPath: "/opt/mongodb/data/rs0-1"
12).在hadoop@test2修改rs1.conf文件:
[hadoop@test2 opt]$ vim /opt/mongodb/conf/rs1.conf

修改以下内容

path: "/optp/mongodb/logs/rs1-1.log"
pidFilePath: "/opt/mongodb/rs1-1.pid"
dbPath: "/opt/mongodb/data/rs1-1"
13).在hadoop@test上复制mongodb到hadoop@test3机器:
[hadoop@test opt]$ scp -r /opt/mongodb-${version} hadoop@test3:/opt
[hadoop@test3 opt]$ ln -s /opt/mongodb-${version} /opt/mongodb
14).在hadoop@test3修改data目录下的文件夹名:
[hadoop@test3 opt]$ mv /opt/mongodb/data/rs0-0 /opt/mongodb/data/rs0-2
[hadoop@test3 opt]$ mv /opt/mongodb/data/rs1-0 /opt/mongodb/data/rs1-2
15).在hadoop@test3上修改rs0.conf文件:
[hadoop@test3 hadoop]$ vim /opt/mongodb/conf/rs0.conf

修改以下内容

path: "/opt/mongodb/logs/rs0-2.log"
pidFilePath: "/opt/mongodb/rs0-2.pid"
dbPath: "/opt/mongodb/data/rs0-2"
16).在hadoop@test3上修改rs1.conf文件:
[hadoop@test3 hadoop]$ vim /opt/mongodb/conf/rs1.conf

修改以下内容

path: "/opt/mongodb/logs/rs1-2.log"
pidFilePath: "/opt/mongodb/rs1-2.pid"
dbPath: "/opt/mongodb/data/rs1-2"
17).rs0配置:三台机器顺序启动mongod的服务:
[hadoop@test opt]$ mongod --config /opt/mongodb/conf/rs0.conf
[hadoop@test2 opt]$ mongod --config /opt/mongodb/conf/rs0.conf
[hadoop@test3 opt]$ mongod --config /opt/mongodb/conf/rs0.conf
18).在baseline01上执行连接到mongod实例:
[hadoop@test opt]$ mongo 172.24.5.173:27017

连接成功后执行

>rs0conf = {
_id: "rs0",
members: [
{
_id: 0,
host: "172.24.5.173:27017"
}
]
}
>rs.initiate( rs0conf )
>rs.add("172.24.5.174:27017")
>rs.add("172.24.5.175:27017")
>rs.status()  //半分钟后执行该命令,若出现一主两从则说明rs0配置成功

rs1配置:
三台机器顺序启动mongod的服务:

[hadoop@test opt]$ mongod --config /opt/mongodb/conf/rs1.conf
[hadoop@test2 opt]$ mongod --config /opt/mongodb/conf/rs1.conf
[hadoop@test3 opt]$ mongod --config /opt/mongodb/conf/rs1.conf

在hadoop@test上执行连接到mongod实例:

[hadoop@test opt]$ mongo 172.24.5.173:27018
>rs1conf = {
_id: "rs1",
members: [
{
_id: 0,
host: "172.24.5.173:27018"
}
]
}
>rs.initiate( rs1conf )
>rs.add("172.24.5.174:27018")
>rs.add("172.24.5.175:27018")
>rs.status()   //半分钟后执行该命令,若出现一主两从则说明rs1配置成功
19).三台机器分别启动配置服务器:
[hadoop@test opt]$ mongod --config /opt/mongodb/conf/configsvr.conf
[hadoop@test2 opt]$ mongod --config /opt/mongodb/conf/configsvr.conf
[hadoop@test3 opt]$ mongod --config /opt/mongodb/conf/configsvr.conf
20).三台机器分别启动mongos路由:
[hadoop@test opt]$ mongos --config /opt/mongodb/conf/mongos.conf
[hadoop@test2 opt]$ mongos --config /opt/mongodb/conf/mongos.conf
[hadoop@test3 opt]$ mongos --config /opt/mongodb/conf/mongos.conf
21).在172.24.5.173上连接到mongos:
[hadoop@test3 opt]$ mongo 172.24.5.173:27000
22).切换到admin数据库,添加分片:
mongos> use admin
mongos> db.runCommand({addshard:"rs0/172.24.5.173:27017,172.24.5.174:27017,172.24.5.175:27017"})
mongos> db.runCommand({addshard:"rs1/172.24.5.173:27018,172.24.5.174:27018,172.24.5.175:27018"})
23.查看分片状态:
mongos>db.runCommand({listshards:1})
24).为testdb数据库启动分片:
mongos>db.runCommand({enablesharding:"testdb"})
mongos>db.runCommand({shardcollection:"testdb.test_table",key:{id:1}})
25).测试插入数据:
mongos>use testdb
mongos>for(var i = 1; i <= 50000; i++) db.test_table.insert( { "id":i, "name":"str"+i, "date":new Date() } ) WriteResult({ "nInserted" : 1 })
mongos>db.test_table.stats()

查看分片状态,若rs0和rs1上分别有数据,说明部署成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴姬压酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值