zoukankan      html  css  js  c++  java
  • mongo学习笔记(五):分片

    分片

       人脸:       代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。

         mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....

                         好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据

                        和片的对应关系以及相应的配置信息保存在"config服务器"上。

        mongod:   一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。

    一、mongo复制黏贴7份

    date文件夹为空文件夹

    在每个bin文件夹里加一个bat

    文件名 内容
    config1.bat mongod --dbpath=F:mongomongodb_config1data --port 2001
    config2.bat mongod --dbpath=F:mongomongodb_config2data --port 2002
    config3.bat mongod --dbpath=F:mongomongodb_config3data --port 2003
    mongos.bat mongos --port 2222 --configdb 127.0.0.1:2001,127.0.0.1:2002,127.0.0.1:2003
    mongod1.bat mongod --dbpath=F:mongomongodb_data1data --port 2004
    mongod2.bat mongod --dbpath=F:mongomongodb_data2data --port 2005
    mongod3.bat mongod --dbpath=F:mongomongodb_data3data --port 2006

    依次启动

    config1.bat

    config2.bat

    config3.bat

    mongos.bat

    mongod1.bat

    mongod2.bat

    mongod3.bat

    新开个cmd

    f:
    cd F:mongomongodb_mongosin
    mongo 127.0.0.1:2222/admin
    db.runCommand({"addShard":"127.0.0.1:2004"})
    db.runCommand({"addShard":"127.0.0.1:2005"})
    db.runCommand({"addShard":"127.0.0.1:2006"})

    db.runCommand({"enablesharding":"test"})
    db.runCommand({"shardcollection":"test.person","key":{"name":1}})

    插入数据

    use test
    for(var i=0;i<10000;i++){
    db.person.insert({"name":"jack"+i,"age":i})
    }

    查看效果

    疑问:

    1.mongos 一直报这个:distributed lock 'balancer/****' unlocked 

    2.分片不均匀,1W数据分成4444,5555,1  到3个数据库

    3.分片后竟然不能用group了。。。。
    
    解决
    db.runCommand({mapreduce:"person",
      map:function Map(){
        emit(this.name,{count:1});
      },reduce:function Reduce(key,values){
        total=0;
        for(var i in values){
          total +=values[i].count
        }
        return {"count":total};
      },finalize:function Finalize(key,reduced){
        return reduced;
      },out:{inline:1}
    });
  • 相关阅读:
    Java static 关键字 静态初始化块
    一致性哈希
    Java函数传递方式值传递
    Scala 小练习
    Scala 推荐递归编程
    白话 Scala 控制抽象
    函数柯里化(curry)
    Scala 闭包 closure
    Scala 参数(类型)推断
    xcode配置文件中,Architectures表示的意义
  • 原文地址:https://www.cnblogs.com/margin-gu/p/5038539.html
Copyright © 2011-2022 走看看