准备工作:三台服务器进行分片集群规划,填写相关信息到下表,测试通信是否互通,如果没有互通,配置通信互通。查看Linux防火墙状态,检查是否关闭,如果没有关闭,则关闭防火墙。查看Linux中SELinux是否无效,如果不是,则修改为无效的。

虚拟机

名称

主机名

IP地址

Shard1

Shard2

Shard3

mongos

Config Server

Hadoop01

Hadoop01

192.168.121.134

27018

主结点

27020

仲裁结点

27019

副结点

27021

27022

主结点

Hadoop02

Hadoop02

192.168.121.135

27019

副结点

27018

主结点

27020

仲裁结点

27021

27022

副结点

Hadoop03

Hadoop03

192.168.121.136

27020

仲裁结点

27019

副结点

27018

主结点

27022

副结点

1、创建相关文件夹和文件,安装mongodb。在第一台服务器上创建相关文件夹和文件,安装mongodb,并将相关目录分发到其他两台,使得三台服务器目录和安装相同。(20分)

#创建等下要使用的文件夹

[root@hadoop01~]#touch/opt/servers/mongodb_demo/shardcluster/configServer/logs/config_server.log

[root@hadoop01 ~]# touch /opt/servers/mongodb_demo/shardcluster/shard/logs/shard1.log

[root@hadoop01 ~]# touch /opt/servers/mongodb_demo/shardcluster/shard/logs/shard2.log

[root@hadoop01 ~]# touch /opt/servers/mongodb_demo/shardcluster/shard/logs/shard3.log

[root@hadoop01 ~]# touch /opt/servers/mongodb_demo/shardcluster/mongos/logs/mongos.log

[root@hadoop01 ~]# tar -zxvf /opt/software/mongodb-linux-x86_64-rhel62-3.6.23.tgz -C /opt/servers/mongodb_demo/shardcluster/

#复制文件夹到其他两台虚拟机

scp -r /opt/servers/mongodb_demo/shardcluster/ root@hadoop02:/opt/servers/mongodb_demo/

scp -r /opt/servers/mongodb_demo/shardcluster/ root@hadoop03:/opt/servers/mongodb_demo/

2、部署配置服务器。(20分)

3、部署分片服务器。(20分)

配置分片的主节点、副节点、仲裁节点

./mongo --host hadoop01 --port 27018

rs.initiate()

rs.add("hadoop02:27019")

rs.addArb("hadoop03:27020")

rs.status()

./mongo --host hadoop02 --port 27018

rs.initiate()

rs.add("hadoop03:27019")

rs.addArb("hadoop01:27020")

rs.status()

./mongo --host hadoop03 --port 27018

rs.initiate()

rs.add("hadoop01:27019")

rs.addArb("hadoop03:27020")

rs.status()

4、部署路由服务器。(20分)

./mongos -f /opt/servers/mongodb_demo/shardcluster/mongos/configFile/mongodb_mongos.conf

5、启动分片功能,在服务器nosql01中登录mongos的MongoDB客户端,切换到数据库gateway,向分片集群添加3个分片。(20分)

./mongo --host hadoop01 --port 27021

use gateway

sh.addShard("shard1/hadoop01:27018,hadoop02:27019,hadoop03:27020")

sh.addShard("shard2/hadoop01:27020,hadoop02:27018,hadoop03:27019")

sh.addShard("shard3/hadoop01:27019,hadoop02:27020,hadoop03:27018")

MongoDB分片操作

  1. 登录01服务器MongoDB客户端

./mongo --host hadoop01 --port 27021

2、切换到数据库config,设置分片块(chunk)大小为1M。主要是为了便于展示分片操作,将分片chunk(块)设置为1M,使得插入少量数据就可体现出分片的效果。

3、创建一个测试数据库,模拟向数据库的集合插入50000条文档(文档除了默认的_id字段,还包括id和name字段,默认_id字段不用插入值,系统自动生成,可用for循环生成id和name值)。

for(i=1;i<=50000;i++){db.user.insert({"id":i,"name":"jack"+i})}

4、对数据库进行分片:切换到数据库gateway,对测试数据库进行分片操作

Use gateway

sh.enableSharding("school")

5、对集合进行分片:切换到数据库school,对测试数据库的集合基于分片键id创建索引,切换到数据库gateway,以"id"作为分片键对集合user进行分片。

6、切换到数据库gateway,查看分片信息。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐