Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7110709
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 高性能计算

2015-07-08 11:28:39

配置MongoDB3.04集群分片

[日期:2015-07-08] 来源:Linux社区  作者:e421083458 [字体:  ]

网上大部分都是的mongo2.x集群分片了,咱写个3.04的。
由于公司采用磁盘阵列冗余存储,所以不考虑数据备份问题只是简单的分片存储数据进行测试的。
配置结构如图:

服务器配置:
cpu双核、8G内存、/shard目录挂载500G硬盘。

服务器列表:

IP
职能
192.168.6.117
config、mongos
192.168.6.118
client
192.168.6.119
client
192.168.6.147
client
192.168.6.160
client

首先打开这5台机器执行如下相同命令:

wget /> tar zxvf mongodb-linux-x86_64-3.0.4.tgz
cp -rf mongodb-linux-x86_64-3.0.4 /usr/local/

依次打开118、119、147、160四台机器执行如下命令(注意:使用118替换指定的119):

mkdir /shard/shard11 9
chmod -R 777 /shard/shard119
/usr/local/mongodb-3.0.4/bin/mongod -shardsvr -port 27017 -dbpath=/shard/shard119/ --storageEngine wiredTiger -logpath=/shard/shard119.log --fork

然后启动。在终端中分别执行检查Mongod进程是否成功启动:

ps aux | grep mongo

如果任何一台没有启动成功,重复上面的,直到找出原因。

OK,现在我们成功的分别在4台计算机上启动了1个mongod实例,mongod是真正存储数据的进程。集群中还需要一个配置服务器,用来存储在各个节点中共享的配置信息,存储数据的元信息[METADATA],也如上面我结构图中config.

打开117服务器执行如下命令:

mkdir /data/config

/usr/local/mongodb-3.0.4/bin/mongod -configsvr -dbpath=/data/config -port 20000 -logpath=/data/config.log --fork

当以上都启动成功,我们可以开启mongos服务了。mongo也是在117上执行。

/usr/local/mongodb-3.0.4/bin/mongos -configdb 192.168.6.117:20000 -port 30000 -chunkSize 100 -logpath=/data/mongos.log --fork

注意-configdb所对应的IP地址和端口应该为config里设置的所在ip及端口。-chunkSize设置分片大小主机默认200,我们可以设置成100即100M。

如果顺利的话,你在117能看到两个mongo上运行的进程,执行查看:ps -ef  | grep mong。表明mongo分片安装完毕。

下面开始配置mongo分片:

连接操作数据库:

/usr/local/mongodb-3.0.4/bin/mongo 192.168.6.117:30000/admin

注意:以下都是在mongo命令行下完成的操作:

添加分片服务器:
db.runCommand({"addshard":"192.168.6.118:27017"})
db.runCommand({"addshard":"192.168.6.119:27017"})
db.runCommand({"addshard":"192.168.6.147:27017"})
db.runCommand({"addshard":"192.168.6.160:27017"})

设置分片数据库:
db.runCommand({"enablesharding": "qiaodazhao"})

使用数据库:
use qiaodazhao

设置表分片基于字段hash:
sh.shardCollection("qiaodazhao.resume_meta_data",{_id:"hashed"})

设置表分片基于字段(注意这种形式与以上作用相同):
db.runCommand({"shardcollection":"qiaodazhao.things", "key":{"_id":1}})

打印数据库分片信息:
db.printShardingStatus()

打印服务器信息:
db.serverStatus()

创建表索引:
db.resume_meta_data.ensureIndex({"org_name":1},{"background":true})

查看表索引:
db.resume_meta_data.getIndexes()

打印信息这里就不截图了。

MongoDB常用操作命令整理  

MongoDB 3.0 正式版发布下载  

CentOS编译安装MongoDB 

CentOS 编译安装 MongoDB与mongoDB的php扩展 

CentOS 6 使用 yum 安装MongoDB及服务器端配置 

Ubuntu 13.04下安装MongoDB2.4.3 

MongoDB入门必读(概念与实战并重) 

Ubunu 14.04下MongoDB的安装指南 

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] 

Nagios监控MongoDB分片集群服务实战 

基于CentOS 6.5操作系统搭建MongoDB服务  href=" style="color:#B32BD5;">uxidc.com/Linux/2014-11/108900.htm

MongoDB 的详细介绍请点这里
MongoDB 的下载地址请点这里

本文永久更新链接地址

阅读(1115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~