zoukankan      html  css  js  c++  java
  • YCSB测试MongoDB分片

     下面测试一下分片(我这里的分片参见我前面MongoDB分片搭建

    启动

    MongoDB中的启动顺序是,先启动配置服务器,在启动分片,最后启动mongos。(三台机器)

    mongod -f /usr/local/mongodb/conf/config.conf
    mongod -f /usr/local/mongodb/conf/shard1.conf
    mongod -f /usr/local/mongodb/conf/shard2.conf
    mongod -f /usr/local/mongodb/conf/shard3.conf
    mongos -f /usr/local/mongodb/conf/mongos.conf

    串联路由服务器

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

    登陆任意一台mongos

    mongo --port 20000

    使用admin数据库

    use  admin

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

    sh.addShard("shard1/192.168.0.100:27001,192.168.0.101:27001,192.168.0.102:27001");
    sh.addShard("shard2/192.168.0.100:27002,192.168.0.101:27002,192.168.0.102:27002");
    sh.addShard("shard3/192.168.0.100:27003,192.168.0.101:27003,192.168.0.102:27003");

    查看集群状态

    sh.status()

    登陆任意一台mongos

    mongo --port 20000

    使用管理数据库

    use  admin

    指定TESTDB(数据库)分片生效

    db.runCommand( { enablesharding :"testdb"});

    指定数据库里需要分片的集合和片键,哈希id分片

    db.runCommand( { shardcollection : "testdb.table1",key : {"_id": "hashed"} } );

    我们设置testdb的table1表需要分片,根据i_d自动分片到shard1,shard2,shard3上面去。要这样设置是因为不是所有mongodb的数据库和表都需要分片!

    测试分片配置结果

    连接MongoDB路由服务

    mongo  127.0.0.1:20000

    YCSB进行MongoDB分片压力测试

    ./bin/ycsb load mongodb -threads 100 -s -P workloads/mongotest_in_only -p mongodb.url=mongodb://127.0.0.1:20000/ycsb?w=0 > outputLoad_shard.txt

    使用Mongostat辅助测试(我这里ycsb数据库没有指定用户及密码)

    mongostat --host 127.0.0.1:20000 --authenticationDatabase ycsb

    你只管努力,其他的交给天意~
  • 相关阅读:
    原型和原型链
    面向对象
    git在idea中的使用,如何构远程git方仓库
    java maven 安装
    Kafka消费者APi
    Kafka生产者APi
    kafka基本概念
    redis常用命令
    redis.conf配置文件参数说明
    Redis.RedisNativeClient的方法get_Db 没有实现
  • 原文地址:https://www.cnblogs.com/genghenggao/p/10732234.html
Copyright © 2011-2022 走看看