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})



 

posted @ 2018-11-28 09:56  慕沁  阅读(211)  评论(0)    收藏  举报