mongodb集群+分片部署(二)
机器:10.165.38.68 10.165.38.72
部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu.com/s/1jIQAGlw 密码:l7pf)
部署结构:
10.165.38.68上部署配置服务、路由服务、和分片服务
10.165.38.72上部署分片服务
下面开始分服务器讲解部署的过程:
第一台服务器:10.165.38.68
第一步:上传上面的部署包到linux服务器上
第二步:解压缩该文件 命令为tar zxvf mongodb-linux-x86_64-rhel55-3.0.2.tgz
第三步:将解压得到的文件夹mongodb-linux-x86_64-rhel55-3.0.2,改名为mongodb_3.0.2
第四步:进入mongodb_3.0.2目录下,内容如下:
第五步:创建文件夹config、shard、route
a:创建配置服务文件夹 mkdir config
b:创建分片服务文件夹 mkdir shard
c:创建路由服务文件夹 mkdir route
第六步:分别在config、shard、route文件夹目录下,创建db(数据存储目录)和log(日志存储目录)文件夹,并在log文件夹中创建mongodb.log文件
a:在config文件夹中创建db文件夹 mkdir config/db
b:在config文件夹中创建log文件夹 mkdir config/log
c:在config/log文件夹中创建mongodb.log文件 touch config/log/mongodb.log
【在shard文件夹中也需要执行上面3个操作:a:mkdir shard/db b:mkdir config/log c:touch shard/log/mongodb.log】
【在route文件夹中也需要执行上面2个操作:a:mkdir route/log b:touch route/log/mongodb.log】
注意到route路由服务没有创建db文件夹,因为路由服务器不需要存储数据,所以不用执行mkdir route/db命令
第七步:在mongodb-3.0.2目录下创建conf文件夹,即与shard、config、route文件夹属同级目录
conf文件夹用来存放启动的配置文件。
第八步:在conf文件夹下创建启动配置文件,有3个文件,route、shard、config(名称自己取,和后面第九步启动命令中文件名对应上即可)
a:创建配置服务器启动文件 vi config,添加如下语句:
configsvr=true
port=10252
dbpath=../config/db
logpath=../config/log/mongodb.log
logappend=true
fork=true
解释:
configsvr规定这是配置服务
port为配置服务器端口号
dbpath为配置服务器的数据存储路径即为第六步中config文件夹中db文件夹的路径,../为上一层的意思
logpath为配置服务器的日志存储路径即为第六步中config文件夹中log文件夹下mongodb.log文件的路径
logappend为错误日志采用追加模式(默认会使用覆盖模式)
fork为以守护进程的方式运行mongodb
添加完成后,保存文件。
b:创建分片服务器启动文件 vi shard,添加如下语句:
shardsvr=true
port=10251
dbpath=../shard/db
logpath=../shard/log/mongodb.log
storageEngine=wiredTiger
wiredTigerCacheSizeGB=1
wiredTigerJournalCompressor=zlib
logappend=true
fork=true
解释:
shardsvr规定这是分片服务
port为分片服务器端口号
dbpath为分片服务器的数据存储路径即为第六步中shard文件夹中db文件夹的路径,../为上一层的意思
logpath为分片服务器的日志存储路径即为第六步中shard文件夹中log文件夹下mongodb.log文件的路径
storageEngine为mongodb存储引擎,在3.0之后的版本新增的功能,可以通过该引擎插件实现启动内存设置等
wiredTigerCacheSizeGB为mongodb内存设置,此处我设置的为1G,可以用来限定mongodb占用内存大小
wiredTigerJournalCompressor为mongodb引擎压缩数据,这样可以对存储的数据进行压缩存储,比如我在服务器上看mongodb的数据只有40MB,但是我导出来会发现这个数据大得多,我本地测试导出来的数据有250M之多。
logappend为错误日志采用追加模式(默认会使用覆盖模式)
fork为以守护进程的方式运行mongodb
添加完成后,保存文件。
c:创建路由服务器启动文件 vi route,添加如下语句:
configdb=10.165.38.68:10252
port=10253
logpath=../route/log/mongodb.log
logappend=true
fork=true
解释:
configdb为配置服务器ip和地址即第八步a中配置的config服务器的端口号,ip为该config所在服务器的ip地址
port为路由服务器的端口
logpath为路由服务器的日志存储路径即为第六步中route文件夹中log文件夹下mongodb.log文件的路径
logappend为错误日志采用追加模式(默认会使用覆盖模式)
fork为以守护进程的方式运行mongodb
添加完成后,保存文件。
至此,分片服务器、配置服务器、路由服务器的启动配置文件就全部配置好了,可以在conf下看到3个文件:
第九步:进入bin目录下,启动mongodb,分3步,需要启动配置服务器、分片服务器、路由服务器
a:启动配置服务器 ./mongod -f /home/自己的路径/mongodb-3.0.2/conf/config
b:启动分片服务器 ./mongod -f /home/自己的路径/mongodb-3.0/conf/shard
c:启动路由服务器 ./mongos -f /home/自己的路径/mongodb-3.0/conf/route (注意这里的命令是 mongos,上面是 mongod)
至此第一台服务器就部署完成了,不要走开,下面部署第二台服务器,实现集群分片策略
第二台服务器:10.165.38.72
该台服务器部署比较简单,只需要部署一个分片服务即可
第一步:上传部署包至linux服务器,解压部署包,并将解压得到的文件夹改名为mongodb_3.0.2,进入该目录
这四步我就不在赘述了,与上面10.165.38.68服务器的前四步完全相同。
第二步:进入mongodb_3.0.2目录,创建shard文件夹
创建分片服务文件夹 mkdir shard
第三步:在shard文件夹目录下,创建db(数据存储目录)和log(日志存储目录)文件夹,并在log文件夹中创建mongodb.log文件
a:在shard文件夹中创建db文件夹 mkdir shard/db
b:在shard文件夹中创建log文件夹 mkdir shard/log
c:在shard/log文件夹中创建mongodb.log文件 touch shard/log/mongodb.log
第四步:在mongodb-3.0.2目录下创建conf文件夹,即与shard文件夹属同级目录
conf文件夹用来存放启动的配置文件。
第五步:在conf文件夹下创建启动配置文件shard(名称自己取,和后面启动命令中文件名对应上即可)
创建分片服务器启动文件 vi shard,添加如下语句:
解释:
shardsvr规定这是分片服务
port为分片服务器端口号
dbpath为分片服务器的数据存储路径即为第三步中shard文件夹中db文件夹的路径,../为上一层的意思
logpath为分片服务器的日志存储路径即为第三步中shard文件夹中log文件夹下mongodb.log文件的路径
storageEngine为mongodb存储引擎,在3.0之后的版本新增的功能,可以通过该引擎插件实现启动内存设置等
wiredTigerCacheSizeGB为mongodb内存设置,此处我设置的为1G,可以用来限定mongodb占用内存大小
wiredTigerJournalCompressor为mongodb引擎压缩数据,这样可以对存储的数据进行压缩存储,比如我在服务器上看mongodb的数据只有40MB,但是我导出来会发现这个数据大得多,我本地测试导出来的数据有250M之多。
logappend为错误日志采用追加模式(默认会使用覆盖模式)
fork为以守护进程的方式运行mongodb
添加完成后,保存文件。
至此,分片服务器的启动配置文件就全部配置好了,可以在conf下看到1个文件:
第六步:进入bin目录下,启动分片服务器
./mongod -f /home/自己的路径/mongodb-3.0/conf/shard
出现started successfully字样,表示启动成功
至此mongodb的集群加分片就部署完成了。下面我们需要登录mongodb服务器,添加分片与路由服务器的关联
第七步:在路由服务器上,进入mongodb-3.0.2/bin的目录下,我这里就是第一台服务器10.165.38.68
执行./mongo localhost:10253 这里的10253是在上面的第八步c中配置的端口号
这样就进入了mongodb的路由服务器。在执行如下命令
a:进入admin数据库 use admin
b:添加分片
db.runCommand({addShard:"10.165.38.68:10251"}) 这里的10251是上面第八步中b的端口
db.runCommand({addShard:"10.165.38.72:10251"}) 这里的10252是第二台服务器中第五步的端口
c:指定需要分片的数据库
db.runCommand({enableSharding:"logtest"}) 该数据库名称为logtest,可自由取名
d:指定需要分片的集合以及片键
db.runCommand({shardCollection:"logtest.logInstance",key:{_id:1}}) 这里的logtest为上面c的数据库取名,logInstance为该数据库中集合的名字类似于mysql数据库中表名含义,指定片键为mongodb的id作为片键。
执行命令后效果如下:
至此所有的部署与配置工作就全部完成了。有心跟随我走到这一步的人相信都是有耐心的人,对于mongodb的部署应该也了解了。
mongodb集群+分片部署(二)的更多相关文章
- MongoDB集群分片部署
MongoDB中使用分片集群结构分布: 三个主要组件: Shard: 用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止主机单点故 ...
- 搭建高可用mongodb集群—— 分片
从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...
- MongoDB集群——分片
1. 分片的结构及原理分片集群结构分布: 分片集群主要由三种组件组成:mongos,config server,shard1) MONGOS数据库集群请求的入口,所有的请求都通过mongos进行协调, ...
- mongodb 集群分片
分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量,这 ...
- MongoDB集群配置笔记二(实战)
单台mongodb配置文件: dbpath=/opt/mongodb/data logpath=/opt/mongodb/logs/mongodb.log logappend=true fork=tr ...
- MongoDB集群部署 - 带访问控制的分片副本集
1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘 ...
- Mongodb副本集+分片集群环境部署记录
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- Mongodb副本集+分片集群环境部署
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- [转]搭建高可用mongodb集群(二)—— 副本集
在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...
随机推荐
- android 在5.0以后不允许使用隐式Intent方式来启动Service
android5.0以后不能使用隐式intent :需要指定Intent的ComponentName信息:intent.setComponent(xxx),或指定Intent的setPackage(& ...
- 清楚float浮动的四种方法
1.对父级设置适合CSS高度 对父级设置适合高度样式清除浮动,这里对“.divcss5”设置一定高度即可,一般设置高度需要能确定内容高度才能设置. 2.clear:both清除浮动 为了统一样式,我们 ...
- svn 目录设置为 不提交 忽略
svn 忽略 以下文件 和目录 (不提交) runningtime --选中 tortoiseSVN --unversion and add to ignore list web workspace ...
- C#笔记(二)变量之预定义的引用类型
1.object类型 在C#中, object类型就是最终的父类型,所有内置类型和用户定义的类型都从它派生而 来. 这样, object类型就可以用于两个目的了: 可以使用object引用绑定任何子类 ...
- 使用Egret Conversion 转化as代码到ts代码
1,转换时,如果一次转化代码文件太多,可能会出现错误,可以一次少转几个文件: 2,如果出现所转换文件中有错误,则需修改要转换文件: 3,转换时还可能生成新文件夹如elex,转换的ts文件就会存在ele ...
- C语言指针、地址、赋值三者含义
先来一个观点.大家先看看对不对 按:在CSDN论坛上,有位坛友提到这个问题: ==================================== 先看一段代码: #include<stdi ...
- linux服务器没网情况下手动安装软件几个方法
1,找到一个有网的服务器,使用yumdownloader gcc,获取需要的rmp包: 2,在http://pkgs.org 下下载所需要的rpm包
- Mysq 5.7l服务无法启动,没有报告任何错误
昨天系统崩溃了,然后重装了Mysql 5.7 安装步骤和遇到问题及解决方案. 去官网下载Mysql 5.7的解压包(zip),解压到你要安装的目录. 我的安装目录是:D:\Java\Mysql 安装步 ...
- [河南省ACM省赛-第三届] 素数 (nyoj 169)
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #i ...
- delphi变量作用域
完全摘自网络(一件飘雪),供参考: 很多初学者对delphi单元的变量和函数访问权限不理解,在此我举例说明,希望初学者看此文后能茅塞顿开. delphi单元的变量和函数访问权限问题如下两个单元描述: ...