您现在的位置是:群英 > 服务器 > 系统运维
一步步教你如何在centos配置mongodb集群
Admin发表于 2023-09-23 11:19:16222 次浏览
关于“一步步教你如何在centos配置mongodb集群”的知识点有一些人不是很理解,对此小编给大家总结了相关内容,文中的内容简单清晰,易于学习与理解,具有一定的参考学习价值,希望能对大家有所帮助,接下来就跟随小编一起学习一下“一步步教你如何在centos配置mongodb集群”吧。
  


 

0、需要环境

安装包:mongodb-linux-x86_64-3.4.6.tgz

安装路径:/usr/mongodb

服务器: 192.168.177.131/132/133

 

mongos 20000
config server 21000
shard1 20001
shard2 20002
shard3 20003

1、解压到 /usr/local

解压后重命名为mongodb,方便以后操作

2、创建目录

mkdir -p mongodb/mongos/log

mkdir -p mongodb/config-server/data

mkdir -p mongodb/config-server/log

mkdir -p mongodb/shard1/data

mkdir -p mongodb/shard1/log

mkdir -p mongodb/shard2/data

mkdir -p mongodb/shard2/log

mkdir -p mongodb/shard3/data

mkdir -p mongodb/shard3/log

 

其中data目录存放数据,log目录存放日志

mongos服务不存放数据,所以不需要数据目录,只需要log目录

3、配置服务器 config server

vim /usr/local/mongodb/config-server.conf

 

systemLog:

destination: file

path: "/usr/local/mongodb/config-server/log/config-server.log"

logAppend: true

storage:

dbPath: "/usr/local/mongodb/config-server/data"

journal:

enabled: true

directoryPerDB: true

net:

port: 21000

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/config-server/config-server.pid"

sharding:

clusterRole: configsvr

replication:

replSetName: configServer

 

冒号(:)和配置之间需要有空格

 

启动三台服务器

cd mongodb

bin/mongod -f config-server.conf

 

登录任意一台配置服务器,初始化

#连接

mongodb/bin/mongo --port 21000

 

config = {

_id : "configServer",

members : [

{_id : 0, host : "192.168.177.131:21000" },

{_id : 1, host : "192.168.177.132:21000" },

{_id : 2, host : "192.168.177.133:21000" }

]

}

 

#初始化副本集

rs.initiate(config);

#查看分区状态

rs.status();

 

4、分片副本集 shard

vim /usr/local/mongodb/shard1.conf

 

systemLog:

destination: file

path: "/usr/local/mongodb/shard1/log/shard1.log"

logAppend: true

storage:

dbPath: "/usr/local/mongodb/shard1/data"

journal:

enabled: true

directoryPerDB: true

net:

port: 20001

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/shard1/shard1.pid"

sharding:

clusterRole: shardsvr

replication:

replSetName: shard1

 

启动三台服务器:

cd mongodb

bin/mongod -f shard1.conf

 

登陆任意一台服务器,初始化副本集

mongo --port 20001

#使用admin数据库

use admin

 

config = {

_id : "shard1",

members : [

{_id : 0, host : "192.168.177.131:20001" },

{_id : 1, host : "192.168.177.132:20001" },

{_id : 2, host : "192.168.177.133:20001" }

]

}

 

#初始化副本集

rs.initiate(config);

#查看分区状态

rs.status();

 

 

配置第二,三个分片副本集,方法同第六步。 注意端口改为20002  20003

systemLog:

destination: file

path: "/usr/local/mongodb/shard2/log/shard2.log"

logAppend: true

storage:

dbPath: "/usr/local/mongodb/shard2/data"

journal:

enabled: true

directoryPerDB: true

net:

port: 20002

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/shard2/shard2.pid"

sharding:

clusterRole: shardsvr

replication:

replSetName: shard2

 

systemLog:

destination: file

path: "/usr/local/mongodb/shard3/log/shard3.log"

logAppend: true

storage:

dbPath: "/usr/local/mongodb/shard3/data"

journal:

enabled: true

directoryPerDB: true

net:

port: 20003

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/shard3/shard3.pid"

sharding:

clusterRole: shardsvr

replication:

replSetName: shard3

 

启动三台服务器:

cd mongodb

bin/mongod -f shard2.conf

bin/mongod -f shard3.conf

 

登陆任意一台服务器,初始化副本集

mongo --port 20002

mongo --port 20003

#使用admin数据库

use admin

 

config = {

_id : "shard2",

members : [

{_id : 0, host : "192.168.177.131:20002" },

{_id : 1, host : "192.168.177.132:20002" },

{_id : 2, host : "192.168.177.133:20002" }

]

}

 

config = {

_id : "shard3",

members : [

{_id : 0, host : "192.168.177.131:20003" },

{_id : 1, host : "192.168.177.132:20003" },

{_id : 2, host : "192.168.177.133:20003" }

]

}

 

#初始化副本集

rs.initiate(config);

#查看分区状态

rs.status();

 

5、路由服务器 mongos

vim /usr/local/mongodb/mongos.conf

 

systemLog:

destination: file

path: "/usr/local/mongodb/mongos/log/mongos.log"

logAppend: true

net:

port: 20000

bindIp: 0.0.0.0

processManagement:

fork: true

pidFilePath: "/usr/local/mongodb/mongos/mongos.pid"

sharding:

configDB: configReplSet/192.168.177.131:21000,192.168.177.132:21000,192.168.177.133:21000

 

启动三台服务器:

cd mongodb

bin/mongos -f mongos.conf

 

注意此处启动使用的是mongos

 

6、启用分片

目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效。

 

#登陆任意一台mongos

mongo --port 20000

#使用admin数据库

use  admin

#串联路由服务器与分配副本集

 

sh.addShard("shard1/192.168.177.131:20001,192.168.177.132:20001,192.168.177.133:20001");

sh.addShard("shard2/192.168.177.131:20002,192.168.177.132:20002,192.168.177.133:20002");

sh.addShard("shard3/192.168.177.131:20003,192.168.177.132:20003,192.168.177.133:20003");

 

#查看集群状态

sh.status()

 

至此集群已经搭建完成。

 

7、测试

连接mongos

bin/mongo --port 20000

 

首先启动某个Database(数据库)的Sharding(分片)功能

mongos> sh.enableSharding("test")

 

对testDB数据库里的collection logs进行shard,shard key是sn字段,shard策略是hashed。使用hashed策略旨在让mongodb将数据均匀分布,如果使用{"sn",1}进行range shard,数据会按照大小顺序分布,就会出现某个shard数据很多,其他的很少的现象。

mongos> sh.shardCollection("testDB.logs", { "sn" : "hashed" } )

 

查看shard信息

mongos> sh.status()

 

添加测试数据

mongos> use testDB

mongos> for(var i=1; i<=100000; i++){db.log.insert({sn:i, msg:'Message ' + i});}

等待一段时间

 

查看log的shard信息

mongos> db.logs.stats()

 

可以看到三个分片几乎平均的保存了数据。

33143   33755   33102

{

"sharded" : true,

"capped" : false,

"ns" : "testDB.logs",

"count" : 100000,

"size" : 5688895,

"storageSize" : 1773568,

"totalIndexSize" : 3944448,

"indexSizes" : {

"_id_" : 983040,

"sn_hashed" : 2961408

},

"avgObjSize" : 56,

"nindexes" : 2,

"nchunks" : 6,

"shards" : {

"shard1" : {

"ns" : "testDB.logs",

"size" : 1920351,

"count" : 33755,

"avgObjSize" : 56,

"storageSize" : 634880,

"capped" : false,

...

"ok" : 1

},

"shard2" : {

"ns" : "testDB.logs",

"size" : 1885397,

"count" : 33143,

"avgObjSize" : 56,

"storageSize" : 544768,

"capped" : false,

...

"ok" : 1

},

"shard3" : {

"ns" : "testDB.logs",

"size" : 1883147,

"count" : 33102,

"avgObjSize" : 56,

"storageSize" : 593920,

"capped" : false,

...

"ok" : 1

}

},

"ok" : 1

}

8、后期运维

mongodb的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos.

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/config-server.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard1.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard2.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/shard3.conf

/usr/local/mongodb/bin/mongos -f /usr/local/mongodb/mongos.conf

关闭时,直接killall杀掉所有进程

killall mongod

killall mongos

没有killall命令的使用<yum install psmisc>安装


通过以上内容的阐述,相信大家对“一步步教你如何在centos配置mongodb集群”已经有了进一步的了解,更多相关的问题,欢迎关注群英网络或到群英官网咨询客服。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: CentOS7 mongodb 集群
相关信息推荐
2022-05-10 11:13:33 
摘要:linux默认编码是“UTF-8”格式,可以通过在终端中执行“locale”命令来进行查看,显示结果为““LANG=en_US.UTF-8”。如果想要修改编码格式,可以使用vi命令打开i18n文件,修改“LANG”项的编码值,保存配置即可。
2023-09-23 11:52:30 
摘要:centos7下git服务器端搭建
2023-05-15 17:15:29 
摘要:CentOS7下搭建LAMPR环境完整教程
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部