mongod实验
vim /etc/mongodb.conf 修改 bind_ip = 0.0.0.0
完成2-3个mongod组成的shard集群,把地震数据分布到各个节点上,
把中国的区域按10个经度10个纬度一组,约为30块
并用mapReduce计算地震数据,统计每一组上每月的地震次数,及地震级别
分析出结果,把地震高发区用偏红颜色标注,低发区,用偏绿颜色标注,分析出中国的地震带
192.168.1.203
#!/bin/bash IP=192.168.1.203 NA=rs3 if [ $1=='reset'];then pkill -9 mongo rm -rf /home/m* exit(0); fi if [ $1=='install'];then mkdir -p /home/m17 /hom3/m18 /home/m19 /home/log mongod --port 27017 --dbpath=/home/m17 --logpath=/home/log/m17.log --fork --samllfiles --replSet ${NA} mongod --port 27018 --dbpath=/hom3/m18 --logpath=/home/log/m18.log --fork --samllfiles --replSet ${NA} mongod --port 27019 --dbpath=/home/m19 --logpath=/home/log/m19.log --fork --samllfiles --replSet ${NA} exit fi if [ "$1" = "rep1" ];then /usr/local/mongodb/bin/mongo <<EOF use admin var rsconf ={ _id:'${NA}', members:[ {_id:0,host:'192.168.1.203:21017'}, {_id:1,host:'192.168.1.203:21018'}, {_id:2,host:'192.168.1.203:21019'}, ] } rs.initiate(rsconf); EOF exit(0); fi
sh start.sh reset
sh start.sh install
sh start.sh repl
192.168.1.204
#!/bin/bash IP=192.168.1.204 NA=rs4 if [ $1=='reset'];then pkill -9 mongo rm -rf /home/m* exit(0); fi if [ $1=='install'];then mkdir -p /home/m17 /hom3/m18 /home/m19 /home/log mongod --port 27017 --dbpath=/home/m17 --logpath=/home/log/m17.log --fork --samllfiles --replSet ${NA} mongod --port 27018 --dbpath=/hom3/m18 --logpath=/home/log/m18.log --fork --samllfiles --replSet ${NA} mongod --port 27019 --dbpath=/home/m19 --logpath=/home/log/m19.log --fork --samllfiles --replSet ${NA} exit
fi
if [ "$1" = "rep1" ];then /usr/local/mongodb/bin/mongo <<EOF use admin var rsconf ={ _id:'${NA}', members:[ {_id:0,host:'192.168.1.204:21017'}, {_id:1,host:'192.168.1.204:21018'}, {_id:2,host:'192.168.1.204:21019'}, ] } rs.initiate(rsconf); EOF exit(0); fi
sh start.sh reset
sh start.sh install
sh start.sh repl
192.168.1.202
203:27017
204:27017
202 configsvr
mongos
mkdir -p /home/m20 ./bin/mongod --dbpath=/home/m20/ --logpath=/home/m20/m20.log --smallfiles --configsvr --fork
./bin/mongos --logpath=/home/m20.log --port 30000 --configdb=192.168.1.202.27017 --fork
# 连接mongod(configsvr)
./bin/mongo --port 27017
sh.status()
# 加入那两个片
sh.addShard('rs3/192.168.1.203:27017')
sh.addShard('rs4/192.168.1.204:27017')
# 针对哪一个库做分区
sh.enableSharding('test')
sh.shardCollection('test.dz',{sn:1}) # 添加带分片的表
for (var i=1;i<=40;i++){
sh.splitAT('test.dz',{sn:i*100000})
}
# 导入数据
./bin/mongoimport -d test -c dz --types csv -f sn,date,time,wei,jing,deep,level,area --file ./dz.csv --headerline
var map = function(){
if (this.jing <0 || this .wei<0){
return;
};
var j = Math.floor(this.jing / 5) *5;
var w = Math.floor(this.wei / 5) *5;
var block = j+":"w;
emit(block,1)
}
var reduce = function(block,values){
return Array.sum(values)
}
db.goods.mapReduce(map,reduce,{out:'res'})
db.res.find().sort({block:-1})

浙公网安备 33010602011771号