首页 > 数据库技术 > 详细

基于CentOS 7、 mongoDB 3.4.2 伪分片集群使用

时间:2017-02-06 16:52:37      阅读:311      评论:0      收藏:0      [点我收藏+]

一、预准备环境:

  本次搭建按照3+3+9的模式进行伪分布式结构(3个mongos对外提供服务,3个configServer保存配置信息,3个mongod存储数据,3个mongod作为数据副本,3个mongod作为仲裁节点);

  (1)为配置服务configServer创建集群文件夹保存服务的信息:

    例:

    mkdir /home/mongo/cluster/config1/data;

    mkdir /home/mongo/cluster/config1/log;

      (2)为分片存储服务mongod集群文件夹保存服务的信息:

    例:

    mkdir /home/mongo/cluster/shard1/data;

    mkdir /home/mongo/cluster/shard1/log;

二、集群

  1、分别启动各个configServer服务,分别占21000,21001,21002端口:

  技术分享

  2、分别登陆configServer写入相关配置:

    >mongo 192.168.1.122:21000

    mongo>use admin
    mongo>cfg = {
        _id:‘cs‘,
        configsvr:true,
        members:[
            {_id:0,host:‘10.45.32.118:21000‘}
        ]
    };
    mongo>rs.initiate(cfg);

 

 

    >mongo 192.168.1.122:21001

    mongo>use admin
    mongo>cfg = {
        _id:‘cs‘,
        configsvr:true,
        members:[
            {_id:0,host:‘10.45.32.118:21001‘}
        ]
    };
    mongo>rs.initiate(cfg);

 

 

    >mongo 192.168.1.122:21002

    mongo>use admin
    mongo>cfg = {
        _id:‘cs‘,
        configsvr:true,
        members:[
            {_id:0,host:‘10.45.32.118:21002‘}
        ]
    };
    mongo>rs.initiate(cfg);

注:3.2 的版本不需要红框标注的参数,3.4版本必须要有,否则无法后续启动mongose服务。如果没有写入configServer的配置信息,mongos服务将拒绝连接。

  3、分别启动分片存储服务,占22001-22009端口:

技术分享

  4、设置分片信息:

    (1)登陆mongo 192.168.1.122:22001;

       >use admin;

       >config = { _id:"shard1", members:[
                   {_id:0,host:"192.168.1.122:22001"},
                   {_id:1,host:"192.168.1.122:22002"},
                   {_id:2,host:"192.168.1.122:22003",arbiterOnly:true}
                ]
             };

       >rs.initiate(config);

    (2)登陆mongo 192.168.1.122:22004;

       >use admin;

       >config = { _id:"shard1", members:[
                   {_id:0,host:"192.168.1.122:22004"},
                   {_id:1,host:"192.168.1.122:22005"},
                   {_id:2,host:"192.168.1.122:22006",arbiterOnly:true}
                ]
             };

       >rs.initiate(config);

    (3)登陆mongo 192.168.1.122:22007;

       >use admin;

       >config = { _id:"shard1", members:[
                   {_id:0,host:"192.168.1.122:22007"},
                   {_id:1,host:"192.168.1.122:22008"},
                   {_id:2,host:"192.168.1.122:22009",arbiterOnly:true}
                ]
             };

       >rs.initiate(config);

4、分别启动mongos,分别占:23000,23001,23002端口:

技术分享

 

 5、连接到mongos,串联路由服务器与分片服务器:

  (1)登陆mongo 192.168.1.122:23000;

      >use admin;

      >db.runCommand( { addshard : "shard1/192.168.1.122:22001,92.168.1.122:22002,92.168.1.122:22003"});

      >db.runCommand( { addshard : "shard2/192.168.1.122:22004,92.168.1.122:22005,92.168.1.122:22006"});

      >db.runCommand( { addshard : "shard2/192.168.1.122:22007,92.168.1.122:22008,92.168.1.122:22009"});
      #查看分片服务器的配置

      >db.runCommand( { listshards : 1 } );

       (2)指定分片与测试;

      >use acer;

      >db.createCollection(‘test‘);

      >db.runCommand( { enablesharding :"acer"});

        #指定为哪个库的哪个集合创建分片,片键

      >sh.shardCollection("acer.test",{"Uid":1}); #此命令指的是为acer库的test集合进行分片,片键为Uid,

      #插入测试数据:

      >use acer

      >for (var i = 1; i <= 100000; i++) db.test.save({"Uid":i,"Name":"zhanjindong","Age":13,"Date":new Date()});

      #查看分片结果

      >db.test.stats();

 

基于CentOS 7、 mongoDB 3.4.2 伪分片集群使用

原文:http://www.cnblogs.com/jarven/p/6370353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!