|
The following example uses two shards (one server each), one config db, and one mongos process, all running on a single test server. In addition to the script below, a python script for starting and configuring shard components on a single machine is available. Creating the ShardsFirst, start up a couple _mongod_s to be your shards. $ mkdir /data/db/a /data/db/b $ ./mongod --shardsvr --dbpath /data/db/a --port 10000 > /tmp/sharda.log & $ cat /tmp/sharda.log $ ./mongod --shardsvr --dbpath /data/db/b --port 10001 > /tmp/shardb.log & $ cat /tmp/shardb.log Now you need a configuration server and mongos: $ mkdir /data/db/config $ ./mongod --configsvr --dbpath /data/db/config --port 20000 > /tmp/configdb.log & $ cat /tmp/configdb.log $ ./mongos --configdb localhost:20000 > /tmp/mongos.log & $ cat /tmp/mongos.log mongos does not require a data directory, it gets its information from the config server.
You can toy with sharding by using a small --chunkSize, e.g. 1MB. This is more satisfying when you're playing around, as you won't have to insert 200MB of documents before you start seeing them moving around. It should not be used in production. $ ./mongos --configdb localhost:20000 --chunkSize 1 > /tmp/mongos.log & Setting up the ClusterWe need to run a few commands on the shell to hook everything up. Start the shell, connecting to the mongos process (at localhost:27017 if you followed the steps above). To set up our cluster, we'll add the two shards (a and b).
$ ./mongo
MongoDB shell version: 1.6.0
connecting to: test
> use admin
switched to db admin
> db.runCommand( { addshard : "localhost:10000" } )
{ "shardadded" : "shard0000", "ok" : 1 }
> db.runCommand( { addshard : "localhost:10001" } )
{ "shardadded" : "shard0001", "ok" : 1 }
Now you need to tell the database that you want to spread out your data at a database and collection level. You have to give the collection a key (or keys) to partition by.
> db.runCommand( { enablesharding : "test" } )
{"ok" : 1}
> db.runCommand( { shardcollection : "test.people", key : {name : 1} } )
{"ok" : 1}
AdministrationTo see what's going on in the cluster, use the config database. > use config switched to db config > show collections chunks databases lockpings locks mongos settings shards system.indexes version These collections contain all of the sharding configuration information. |

PLEASE POST QUESTIONS IN THE USER GROUPS FORUM. Post non-question comments and helpful hints here.
blog comments powered by Disqus