zoukankan      html  css  js  c++  java
  • [原创]MongoDB_Sharding

    Mongo Sharding:
    本示例搭建了三个副本集作为三个分片的sharding集群,其中master,slave,factershi三台同网段的内网主机。前期规划和原理分析省略,可根据具体配置推导出。具体实现步骤如下:

    1.master,slave,facter三台机器上都做如下操作:
    mkdir -p /data/sharding/{mongos,config,shard1,shard2,shard3}
    cd /data/sharding
    mkdir -p mongos/{data,logs}
    mkdir -p config/{data,logs}
    mkdir -p shard1/{data,logs}
    mkdir -p shard2/{data,logs}
    mkdir -p shard3/{data,logs}

    2.master,slave,facter三台机器上都做如下操作(启动config server):
    /data/mongodb/bin/mongod --configsvr --dbpath=/data/sharding/config/data --port 26000 --logpath=/data/sharding/config/logs/config.log --storageEngine=wiredTiger --logappend --fork

    3.master,slave,facter三台机器上都做如下操作(启动mongos路由):
    /data/mongodb/bin/mongos --configdb 10.232.63.71:26000,10.221.216.35:26000,10.232.55.122:26000 --port 25000 --logpath=/data/sharding/mongos/logs/mongos.log --fork --logappend

    4.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard1 --port 26001 --dbpath=/data/sharding/shard1/data --logpath=/data/sharding/shard1/logs/shard1.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    5.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard2 --port 26002 --dbpath=/data/sharding/shard2/data --logpath=/data/sharding/shard2/logs/shard2.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    6.master,slave,facter三台机器上都做如下操作(启动mongod节点):
    /data/mongodb/bin/mongod --shardsvr --replSet shard3 --port 26003 --dbpath=/data/sharding/shard3/data --logpath=/data/sharding/shard3/logs/shard3.log --fork --storageEngine=wiredTiger --oplogSize 100 --logappend

    7.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard1):
    ./mongo --port 26001
    use admin
    config={_id:"shard1",members:[{_id:0,host:"10.232.63.71:26001",arbiterOnly:true},{_id:1,host:"10.221.216.35:26001"},{_id:2,host:"10.232.55.122:26001"}]}
    rs.initiate(config);

    8.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard2):
    ./mongo --port 26002
    use admin
    config={_id:"shard2",members:[{_id:0,host:"10.232.63.71:26002"},{_id:1,host:"10.221.216.35:26002",arbiterOnly:true},{_id:2,host:"10.232.55.122:26002"}]}
    rs.initiate(config);

    9.在任一非[arbiterOnly:true]机器上做如下操作(配置副本集shard3):
    ./mongo --port 26003
    use admin
    config={_id:"shard3",members:[{_id:0,host:"10.232.63.71:26003"},{_id:1,host:"10.221.216.35:26003"},{_id:2,host:"10.232.55.122:26003",arbiterOnly:true}]}
    rs.initiate(config);

    10.在任意一台机器上做如下操作(配置sharding):
    ./mongo --port 25000
    use admin
    db.runCommand({addshard:"shard1/10.232.63.71:26001,10.221.216.35:26001,10.232.55.122:26001"})
    db.runCommand({addshard:"shard2/10.232.63.71:26002,10.221.216.35:26002,10.232.55.122:26002"})
    db.runCommand({addshard:"shard3/10.232.63.71:26003,10.221.216.35:26003,10.232.55.122:26003"})

    11.查看分片情况:
    db.runCommand({listshards:1})

    12.设置需要分片的库表和分片方式:
    sh.enableSharding("raw")
    sh.shardCollection("raw.gizwits_raw", {"did":"hashed"})

    13.注意规划好副本集角色在机器上的分布以及根据实际情况调整分片的参数,如:oplogSize,chunkSize,balancer的时间等参数。

    14.--storageEngine=wiredTiger修改存储引擎为wiredTiger,更高效,存储空间更小。--auth开启用户验证。
  • 相关阅读:
    Python多进程multiprocessing
    Python正则表达式基础
    wget: unable to resolve host address “http”
    python爬虫--爬取cctv连续剧
    Linux 配置静态IP
    ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'
    启动hive --service metastore &出现Missing Hive Execution Jar: /opt/apache-hive-1.2.0-bin//lib/hive-exec-*.jar
    /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15"" not found
    Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083
    爬取豆瓣电影信息保存到Excel
  • 原文地址:https://www.cnblogs.com/wsjhk/p/4859172.html
Copyright © 2011-2022 走看看