MongoDB集群搭建

搭建之前先了解一下MongoDB分片群集主要有如下三个组件:

Shard:分片服务器,用于存储实际的数据块,实际生产环境中一个shard server 角色可以由几台服务器组成一个Replica Set 承担,防止主机单点故障。

Config Server:配置服务器,存储了整个分片群集的配置信息,其中包括chunk信息。

Routers:前端路由,客户端由此接入,且让整个群集看上去像单一数据库,前端应用可以透明使用。

从图中可以看到有四个组件:mongosconfig servershardreplica seto

mongos: 数据库集群请求的入口 ,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一请求分发中心,它负责把对应的数 据请求请求转发到对应的shard服务器上。在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的mongodb请求都没有办法操作。

config server: 顾名思义为配置g艮务器,存储所有数据库元信息(路由、分片)的配置mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配劃艮 务器则实际存储这些数据。mongos第一次启动或者关掉重启就会从config server加载配置信息,以后如果配賽艮务器信息变化会通知到所有的mongos更新自己的状态, 这样mongos就嶼续准确路由。在生产环境通常有多个config server配置服务器,因为它存储了分片路由的元数据,防止数据丢失!

shard: 分片(sharding )是指将»据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大 的负载。基本思想就是将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一35分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。

**replica set:**中文翻译副本集,其实就是shard的备份,防止shard挂掉之后数据丢失。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用 性,并可以保证数据的安全性。

仲裁者(Arbiter ):是复制集中的一个MongoDB实例,它并不保存数据。仲裁节点使用最小的资源并且不要求硬件设备,不能将Arbitergp署在同一个数据集节点中,可以 部署在其他应用服务器或者监视服务器中,也可部署在单独的虚拟机中。为了确保复制集中有奇数的投票成员(包括primary ),需要添加仲裁节点做为投票,否则primaiy 不能运行时不会自动切换primary。

简单了解之后,我们可以这样总结一下,应用请求mongos来操作mongodb的增删改查,配置服务器存储数据库元信息,并且和mongos做同步,数据最终存入在shard (分 片)上,为了防止数据丢失同步在副本集中存储了一份,仲裁在数据存储到分片的时候决定存储到哪个节点。

三台机器的配置服务(27018)形成复制集,分片1、2、3也在各机器都部署一个实例,它们之间形成复制集,客户端直接连接3个路由服务与之交互,配置服务和分片服务对客户端是透明的。

这里按照3台搭建

主机 路由服务端口 配置服务端口 分片1端口 分片2端口 分片3端口
zzen01 27017 27018 27001 27002 27003
zzen03 27017 27018 27001 27002 27003
zzen04 27017 27018 27001 27002 27003

服务器的安装及配置(3台服务器执行相同操作)

1、下载解压MongoDB

到MongoDB官网下载:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.6.tgz
MongoDB官网下载4.0.6
解压到/home/mongodb,设置环境变量:

echo 'export PATH=.:/home/mongodb/bin:$PATH'  >> /etc/profile

保存后执行:
source /etc/profile

2、创建路由、配置、分片等的相关目录与文件配置服务器部署(3台服务器执行相同操作)

配置服务器部署(3台服务器执行相同操作)

mkdir -p /home/mongodb/conf           //启动配置文件存放的文件夹
mkdir -p /home/mongodb/data/config    //配置服务数据存放目录
mkdir -p /home/mongodb/data/shard1    //分片1服务数据存放目录
mkdir -p /home/mongodb/data/shard2    //分片2服务数据存放目录
mkdir -p /home/mongodb/data/shard3    //分片3服务数据存放目录
mkdir -p /home/mongodb/log            //创建log目录
touch /home/mongodb/log/config.log    //配置服务日志存放文件
touch /home/mongodb/log/mongos.log    //路由服务日志存放文件
touch /home/mongodb/log/shard1.log    //分片1服务日志存放文件
touch /home/mongodb/log/shard2.log    //分片2服务日志存放文件
touch /home/mongodb/log/shard3.log    //分片3服务日志存放文件

1、在/home/mongodb/conf目录创建config.conf,内容如下

dbpath=/home/mongodb/data/config
logpath=/home/mongodb/log/config.log
port=27018
logappend=true
fork=true
maxConns=5000
#复制集名称
replSet=configs
#置参数为true
configsvr=true
#允许任意机器连接
bind_ip=0.0.0.0

2、配置复制集

分别启动三台服务器的配置服务:

mongod -f /home/mongodb/conf/config.conf

3 、连接mongo

只需在任意一台机器执行即可:

mongo --host zzen01 --port 27018

切换数据库:

use admin

初始化复制集:

rs.initiate({_id:"configs",members:[{_id:0,host:"zzen01:27018"},{_id:1,host:"zzen03:27018"},{_id:2,host:"zzen04:27018"}]})

其中_id:"configs"的configs是上面config.conf配置文件里的复制集名称,把三台服务器的配置服务组成复制集

查看状态:

rs.status()

等几十秒左右,执行上面的命令查看状态,三台机器的配置服务就已形成复制集,其中1台为PRIMARY,其他2台为SECONDARY。

linux mongodb集群搭建相关推荐

  1. 【超详细】手把手教你搭建MongoDB集群搭建

    MongoDB集群搭建 MongoDB集群简介 mongodb 集群搭建的方式有三种: 主从备份(Master - Slave)模式,或者叫主从复制模式. 副本集(Replica Set)模式 分片( ...

  2. Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装

    Python +大数据-Hadoop生态-Linux(二)-集群搭建和安装 今日课程学习目标 1.掌握Linux用户.权限管理 2.掌握Linux常用系统命令 3.掌握服务器集群环境搭建 4.了解sh ...

  3. MongoDB集群搭建的整理及出错整理

    之前搭建过集群,现在重新搭建,竟然花费了我一晚上时间,不就这边出错,就是那边少东西,头疼,还是趁热打铁,出一份完整的搭建教程 一.几个比较常用的linux语句: 1.查看主机的线程: ps aux|g ...

  4. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

  5. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本:3.2.1 Redis已经成功安装,安装路径为/home/idata/yangf ...

  6. mongodb集群搭建详情分片+副本集

    在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置服务器等. 相关概念 mongodb集群架构图: 从图中可以看到有四个组件:mongos.config server.shard.repl ...

  7. Zookeeper之Linux分布式集群搭建及客户端shell命令操作

    一.准备至少三台Linux服务器及对应的jdk环境 1.服务器及jdk环境准备 服务器:至少三台Linux服务器 JDK环境:三台Linux服务器上都需要安装好jdk环境(jdk环境安装参考我的博客: ...

  8. Mongodb集群搭建的三种方式

    Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式.关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mong ...

  9. linux nacos集群搭建最简单最详细版

    为什么要做集群,其实就是为了应用的高可用,避免一台挂了,导致应用不可用 为什么要使用Ngnix因为这玩意抗揍,能支持高并发不挂机 安装nacos实现持久化必须提前安装mysql和jdk环境和nginx ...

最新文章

  1. 画布Canvas的使用
  2. python自然语言处理一作者书
  3. 在VMware Workstation中安装Ubuntu设置网络连接
  4. JS中setTimeout()的使用方法具体解释
  5. geojson地图_ThingJS的三维城市地图搭建逻辑解析
  6. 拿 C# 搞函数式编程
  7. 作品展结束了,学习才真正的开始
  8. python3和php7哪个好_性能是Flask的3倍!比PHP7还快!这个Python框架你值得拥有!
  9. BitMEX将调整Impact Notional和Index Price Protection两个参数
  10. c语言扫掠数组,科学网—COMSOL 个人笔记 - 刘铨鸿的博文
  11. 中国电信天翼网关路由器后台登录useradmin用户忘记密码的解决方法默认密码管理员密码工作人员密码
  12. ati.c ATI顯卡開發源代碼
  13. 基于DDPG的智能交通灯控制算法
  14. html,js实现对联广告
  15. IDEA2021.2安装与配置(持续更新)
  16. QQ互赞助手pro【每天免费互shua名片赞】2.0系统版本
  17. excel单元格下拉选项怎么设置_表格设置下拉多个选项的方法_excel如何设置下拉选项图文步骤...
  18. 配置MAWEN环境变量,总是出错
  19. 【VMW】虚拟机安装Linux系统
  20. 计算机cdef盘无法显示,win7计算机不显示硬盘分区盘符

热门文章

  1. 原生js去除前后空格
  2. Win10无法卸载/重装IE11浏览器的解决方法
  3. RML2016.10a数据集生成环境配置
  4. 【数据可视化】免费开源BI工具 DataEase 之血缘关系分析
  5. freebsd 更改镜像源
  6. 基于 Python 的自然邻域法空间插值的实现与优化
  7. 快速搭建kodexplorer+OnlyOffice私有云办公平台
  8. 一键生成网站或qq的二维码
  9. Windows与linux 双系统装机
  10. 用Python+OpenCV+PyQt开发的答题卡识别软件