mongoDB Replica Set

Download Report

Transcript mongoDB Replica Set

MongoDB
Replica,Shard Cluster
中央大學電算中心 楊素秋
2014-05-05
OUTLINE
•
•
•
•
•
1.
2.
3.
4.
5.
MongoDB Replica
Deploy a Replica Set
Sharing Cluster
Deploy a Sharded Cluster
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”)
2. Deploy a Replica Set (cont.)
• 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
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;
}
2. Deploy a Replica Set (cont.)
• Slave Node
– mongo shell
• use fdns
• rs.slaveOk()
• show collections
– mongo shell
• db.collectionName.remove() // FAIL
• db.collectionName.drop()
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-introduction/
– http://docs.mongodb.org/manual/core/sharded-cluster-components/
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/d
eploy-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