`
landyer
  • 浏览: 142002 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MongoDB1.8安装、分布式自动分片(Auto-Sharding)配置备忘

阅读更多

原文地址:http://www.shubo.info/mongodb1-8%E5%AE%89%E8%A3%85%E3%80%81%E5%88%86%E5%B8%83%E5%BC%8F%E8%87%AA%E5%8A%A8%E5%88%86%E7%89%87auto-sharding%E9%85%8D%E7%BD%AE%E5%A4%87%E5%BF%98

 

 

MongoDB1.8安装、分布式自动分片(Auto-Sharding)配置备忘

2011 年 05 月 05 日No Comments

环境:

安装了centos5.6 64位系统的服务器两台,因为32位,mongodb限制数据库容量总和只能是2G左右

安装了apache2.2+php5.1环境,因为之后我们要运行mongodb的WEB管理程序RockMongo

两台服务器IP分别为192.168.1.11,192.168.1.22

安装MongoDB:

直接从官网下载(http://www.mongodb.org/downloads)Linux 64-bit版本,截至此文发布版本为1.8.1

wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.1.tgz

tar xvzf mongodb-linux-x86_64-1.8.1.tgz

cd mongodb-1.8.1

里面有很多文件mongodb相关文件

其中我们接下来用到的几个为

mongod:MongoDB主进程,可以以shard server、config server等方式启动

mongos:MongoDB路由进程,配置了Auto-Sharding的服务器,通过这个路由进程来管理各种请求,类似一个透明代理。

mongo:MongoDB客户端工具,可以在服务器上进行命令行方式的维护

其他程序文件请自行google或者看官方文档,应该是有一些导入导出,数据库修复等程序。

注意:建议通过ln -s /root/mongodb/bin/mongod /usr/bin/mongod进行软链接,这样方便后面的操作

启动Mongodb相关进程,为做配置准备

注:这里可以是像我这样的两台或多台服务器,如果服务器资源有限,也可以用单机启动不同端口的进程来做测试

首先分别在11,22服务器上启动shardsvr进程

mongod --shardsvr --dbpath=/home/mongodb/data/ --logpath=/home/mongodb/log/shardsvr_logs.txt --logappend &

启动信息会存入我们指定的日志文件,启动成功信息如下:

Thu May  5 23:54:41 [initandlisten] MongoDB starting : pid=10172 port=27018 dbpath=/home/mongodb/data/ 64-bit

Thu May  5 23:54:41 [initandlisten] db version v1.8.1, pdfile version 4.5

Thu May  5 23:54:41 [initandlisten] git version: a429cd4f535b2499cc4130b06ff7c26f41c00f04

Thu May  5 23:54:41 [initandlisten] build sys info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41

Thu May  5 23:54:41 [initandlisten] waiting for connections on port 27018

Thu May  5 23:54:41 [websvr] web admin interface listening on port 28018

可以看到这里shardsvr默认端口为27018

接下来在11服务器上启动configsvr

mongod --configsvr --dbpath=/home/mongodb/config_db/ --repairpath=/home/mongodb/config_repair_db/ --logpath=/home/mongodb/log/configsvr_logs.txt --logappend &

启动成功也会写入日志文件,日志内容类似上面的,不指定端口的情况下configsvr的默认端口为27019

然后我们在11服务器上启动mongos路由进程:

mongos --configdb 192.168.1.11:27019 --logpath=/home/mongodb/log/mongos_logs.txt --logappend &

这里--configdb指定的IP和端口为configsvr所在服务器的IP和端口,mongos进程默认端口为27017,客户端的一些操作只要通过连接mongos就可以任何操作,只要配置好了,后端的一些分布式分片存储等逻辑,MongoDB会自动帮你完成。

部署RockMongo到服务器上

首先到这里下载http://pecl.php.net/package/mongo php mongo扩展

wget http://pecl.php.net/get/mongo-1.1.4.tgz

tar mongo-1.1.4.tgz

cd mongo-1.1.4

phpize    //如果命令不能用请yum install php-dev

./configure

make && make install

修改/etc/php.ini

追加extension = "mongo.so"

然后重启apache就可以了 service httpd restart

接着从http://code.google.com/p/rock-php/downloads/list下载解压就可以用了,默认帐号密码为admin admin

部署完以后创建demo数据库,管理界面很简单,一看你就懂了。

配置自动分片(Auto_Sharding):

用mongo shell连接mongos进程进行配置管理

mongo 192.168.1.11:27017

>show dbs   //显示所有database

admin

config

>use admin  //切换到admin数据库进行相关配置

switched to db admin

>db.runCommand({addshard:"192.168.1.11:27018"});  //添加shard节点1

{ "shardAdded" : "shard0000", "ok" : 1 }

> db.runCommand({addshard:"127.0.0.1:27018"}) //添加shard节点2

{ "shardAdded" : "shard0001", "ok" : 1 }

>db.runCommand({enableSharding:"demo"}); //为数据库DEMO启用sharding

{ "ok" : 1 }

>db.runCommand({shardcollection:"demo.iptables",key:{_id:1}}); //设置为哪个文档设置自动分区。这里需要区分一个概念,MongoDB的自动分区是针对文档进行的,不设置的文档默认存储在单节点上

{ "collectionsharded" : "demo.iptables", "ok" : 1 }

>use demo

>for (var i=1; i<=100000; i++) db.iptbales.save({"ip":"127.0.0.1"});//循环插入10W测试数据

这个过程可能需要几秒的时间,完成了会出现箭头>

接着你可以通过db.stats();命令来查看分区存储情况,下面是我的一个截图

如果你只看到一个节点,请重复执行几次测试数据存入语句,应该就可以了。

至此简单的Auto-Sharding配置完成,如果此次在项目中试用mongodb成功,我会经常分享mongodb经验上来

分享到:
评论
2 楼 landyer 2011-09-04  
happinesss 写道
你是做java开发的吗

我是杂货铺,什么都开发的,最近在做 JAVA
1 楼 happinesss 2011-08-31  
你是做java开发的吗

相关推荐

    30分钟学MongoDB系列——分布式架构分片(Sharding)

    其中,分片(Sharding)是MongoDB中非常重要的分布式特性之一,它能够帮助数据库管理系统实现数据的水平扩展,以提升整个系统的处理能力和吞吐量。 分片概念的起源可以追溯到大型多人在线角色扮演游戏(MMORPG),...

    原创Linux下Mongodb的分布式分片群集(sharding cluster)配置

    在Linux环境下配置MongoDB的分布式分片群集是提升数据库性能和可扩展性的重要手段。本文将深入探讨如何在Linux操作系统上搭建和管理MongoDB的分片集群。 **一、MongoDB分片群集概述** 分片(Sharding)是MongoDB中...

    mongodb中文API及分布式分片实例详解

    在本篇中,我们将深入探讨MongoDB的中文API以及如何实施分布式分片,旨在帮助开发者更好地理解和应用这一强大的数据库技术。 一、MongoDB中文API详解 1. 连接与断开:MongoDB的中文API提供了连接数据库的方法,如`...

    基于Java和Shell脚本的LG-MongoDB-Sharding集群分片设计源码

    本项目为基于Java和Shell脚本开发的LG-MongoDB-Sharding集群分片设计源码,包含31个文件,涵盖20个配置文件、4个Java源文件、2个Shell脚本文件、1个Git忽略文件、1个Markdown文件、1个XML文件、1个YAML文件。...

    Linux下Mongodb的分布式分片群集shardingcluster配置.pdf

    MongoDB的分布式分片群集(Sharding Cluster)是一种针对大数据量场景的高效扩展解决方案。在MongoDB中,分片(Sharding)是通过将数据分布在多台服务器上来实现水平扩展,以处理海量数据和高并发请求。这种架构通常...

    mongodb的大型分布式部署

    - **分片(Sharding)**:指将数据分布在多个物理服务器上的技术,每个分片持有部分数据。这种设计可以有效提高系统的水平扩展能力,使得数据库能够应对海量数据的存储和处理。 - **分片集群**:由一个或多个分片...

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...

    mongodb-linux-x86_64-4.0.8.tgz

    - 配置环境变量:在`~/.bashrc`或`~/.bash_profile`文件中添加`export PATH=&lt;mongodb-install-dir&gt;/bin:$PATH`,然后运行`source ~/.bashrc`或`source ~/.bash_profile`。 - 启动MongoDB:`mongod --dbpath /data/...

    MongoDB Community(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)

    MongoDB Community Server(mongodb-org-server-5.0.8-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...

    2012 最新的mongodb sharding配置步骤 权威指南 分片步骤

    总结来说,MongoDB的分片配置涉及到多个步骤,包括安装MongoDB、配置复制集、启动配置服务器和路由服务器,以及设置分片键和迁移数据。理解这些步骤和原理对于管理和维护大规模的MongoDB集群至关重要。

    MongoDB(mongodb-org-server-5.0.4-1.el7.x86_64.rpm)

    MongoDB Community Server(mongodb-org-server-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...

    配置mongodb分片群集(sharding cluster)

    1. **安装MongoDB**:首先,确保在所有参与分片的机器上都安装了MongoDB,并启动单个实例进行测试。 2. **初始化配置服务器**:创建至少3个配置服务器实例,以确保高可用性。在每个配置服务器实例上运行 `mongod` ...

    MongoDB Community Server(mongodb-windows-x86_64-5.0.8-signed.msi

    MongoDB Community Server(mongodb-windows-x86_64-5.0.8-signed.msi)适用于RedHat / CentOS 7.0 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 ...

    RFID与MongoDB融合的分布式云仓储管理系统.pdf

    这些问题的解决可以通过引入非关系型数据库,如MongoDB,并利用其分布式云存储架构的优势来实现。本文将介绍一种基于RFID技术和MongoDB融合的分布式云仓储管理系统,该系统针对现代商品仓储管理问题提供了一套解决...

    mongodb-linux-x86_64-rhel62-4.0.0.tgz

    3. 自动分片(Sharding):MongoDB的自动分片功能允许将大型数据集分散到多个服务器上,确保数据分布均匀,提高查询效率。 4. 复制集(Replication):通过复制集,MongoDB可以创建数据副本,以提高容错性和高可用...

    mongodb-linux-x86_64-ubuntu1404-3.6.4

    MongoDB是一个开源、分布式、高性能的文档型数据库系统,它以JSON格式存储数据,支持丰富的查询语法和自动分片功能,适用于处理大量数据并需要高可用性和可扩展性的应用场景。这个压缩包“mongodb-linux-x86_64-...

    mongodb-linux-x86-64-rhel70-4.0.28.tgz

    在Linux环境下,MongoDB提供了针对不同操作系统版本的二进制发行包,如本例中的"mongodb-linux-x86_64-rhel70-4.4.20.tgz"。这个文件是为Red Hat Enterprise Linux 7.0 (RHEL 7.0)平台设计的64位版本的MongoDB ...

    mongodb-windows-x86_64-4.4.6-signed.zip

    4. **分片查询优化**:在4.4版本中,MongoDB改进了分片查询的性能,特别是在处理大型数据集时。 5. **存储引擎选择**:MongoDB支持多种存储引擎,如MMAPv1、WiredTiger等。WiredTiger是默认引擎,提供更好的性能和...

Global site tag (gtag.js) - Google Analytics