配置MongoDB集群分片
现在网上很多教程都在讲MongoDB分片配置,但大多都没有经过实战,胡乱转载。而且用的MongoDB版本不同各种配置眼花寮乱,让入门者莫衷一是。
最近我也做了MongoDB分片,贴出自己的配置。并且把需要注意的问题和大伙聊聊,不恰当的地方希望大家指正。 也同时希望让后来者能绕过这些问题。
我配置的集群是测试用的,没有复制。只是简单的分片存储数据进行测试。在测试的时候又分片,又复制,那么多机器也麻烦。这一点网上的很多例子都是错误的,为此我也花了很多时间。
我配置完成后的结构图为:
我的Mongo版本为:mongodb-linux-x86_64-2.0.8,计算机为普通Pc。
在这里我要特别说明:
1.大数据情况下最好是64位机器,32位机器不能创建大于2GB的单个文件。 小数据量无所谓
2.集群中的每台计算机的系统最好都是一样的,不要32位,64位搭配
-- 我在开始做测试就是这样,2台64,2台32.当注入300W左右的数据,索引大于3-4G时32位机器出错了,32位系统上不能创建大于2GB的单个文件。整个集群瘫痪,我为此找了很长时间的原因
让我们开始吧!
mongo从下载后解压后的目录结构如下:我们视安装目录为:${MONGO_INSTALL}
先在第一台计算机上在${MONGO_INSTALL}下分别执行:
mkdir -p /data/shard11
bin/mongod -shardsvr -port 27017 -dbpath=/data/shard11/ -logpath=/data/shard11.log --fork