mongodb replica,shard cluster 中央大學電算中心 楊素秋 2014-05-05
Post on 16-Jan-2016
258 Views
Preview:
TRANSCRIPT
MongoDB Replica,Shard Cluster
中央大學電算中心 楊素秋2014-05-05
OUTLINE
• 1. MongoDB Replica• 2. Deploy a Replica Set• 3. Sharing Cluster• 4. Deploy a Sharded Cluster• 5. Conclusion
1. MongoDB Replica
• Provides redundancy– protects a database from• loss of a single server
• Increases data availability– recover from• hardware failure• service interruptions
2. Deploy a Replica Set
• 安裝 / 啟動 mongoDB on each hosts – http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat-centos-or-
fedora-linux/
• 設定 /etc/mongod.conf• service mongod restart
• 在 primary host (140.115.2.32)– rs.initiate()– rs.add(“140.115.2.32:27017”)– rs.add(“140.115.2.31:27017”)– rs.addArb(“140.115.2.34:27017”)
• Priority – cfg = rs.conf()– cfg.members[0].priority = 2.0 – cfg.members[1].priority = 0.5– rs.reconfig(cfg)
2. Deploy a Replica Set (cont.)
• Slave Node – MongoDBManager.java
2. Deploy a Replica Set (cont.)
public static synchronized DB getDB() throws Exception { if(mongo == null) { mongo = new Mongo(); mongo.slaveOk(); } return mongo.getDB("fdns"); } public static synchronized Mongo getMongo() throws Exception { if(mongo == null) { mongo = new Mongo(); mongo.slaveOk(); } return mongo; }
• Slave Node – mongo shell
• use fdns
• rs.slaveOk()• show collections
– mongo shell• db.collectionName.remove() // FAIL• db.collectionName.drop()
2. Deploy a Replica Set (cont.)
3. Sharing Cluster
• Single machine challenges– High query rates• exhaust CPU capacity
– Larger data sets• exceed the storage capacity
• Referances– http://docs.mongodb.org/manual/core/sharding-introduc
tion/– http://docs.mongodb.org/manual/core/sharded-cluster-c
omponents/
3. Sharing Cluster(cont.)
• Sharded Cluster Components– Shards • holds a subset of a collection’s data• a single mongod instance, or a replica set
– Config Servers• a mongod instance
– holds metadata about the cluster– metadata maps chunks to shards
3. Sharing Cluster (cont.)
– Routing Instances • a mongos instance
– routes the reads and writes from applications to the shards
• Applications do not access the shards directly
3. Sharing Cluster (cont.)
• Vertical scaling– adds more CPU and storage resources to increase capacity
• horizontal scaling (Sharding)• divides the data set• distributes data over multiple servers(shards)– Each shard is an independent database– shards make up a single logical database
• Range based partitioning– MongoDB divides the data set into ranges• determined by the shard key values to provide
• Hash Based Sharding• MongoDB computes a hash of a field’s value– uses these hashes to create chunks.
4. Deploy a Shard Cluster
– http://docs.mongodb.org/manual/tutorial/deploy-shard-cluster/
5. Conclusion
• Replica Set **– Primary : service– Secondary : Data Mining
• Apache Mahout: cluster, classification• Mining flooding, attacks traffic
– Arbiter
• Sharing Cluster– Load balance– Scalability
top related