文档章节

MongoDB 3.4分片【Linux】

STINGWOH
 STINGWOH
发布于 2017/07/27 20:46
字数 756
阅读 2
收藏 0

前言

在学习MongoDB时,涉及到分片的概念,需要实际操作以后才能看出效果。故在Linux中设置一个例子,以便以后学习标记。

分片

在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。

当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。

MongoDB 3.4 分片

一,Linux设置MongoDB环境变量

1,下载MongoDB压缩包

最新下载地址:https://www.mongodb.com/download-center?jmp=nav#community

根据系统版本选择对应的压缩包。个人下载的是:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.2.tgz

2,把压缩包解压

解压命令如下:

tar -zxvf mongodb-linux-x86_64-rhel70-3.4.2.tgz

3,创建目录,把文件转移的新的目录下去

mkdir mongodb
mv mongodb-linux-x86_64-rhel70-3.4.2/* mongodb

4,修改环境变量

vi /etc/profile

最后添加以下关键信息:export PATH=$PATH:mongodb/bin

然后执行以下命令

source /etc/profile

二,MongoDB 分片

摘录开始

下图展示了在MongoDB中使用分片集群结构分布:

 

上图中主要有如下所述三个主要组件:

  • Shard:

    用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止主机单点故障

  • Config Server:

    mongod实例,存储了整个 ClusterMetadata,其中包括 chunk信息。

  • Query Routers:

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

摘录结束
摘录http://www.runoob.com/mongodb/mongodb-sharding.html 

1,创建目录

 

mkdir -p mongodb/data/dbs/shard1/data
mkdir -p mongodb/data/dbs/shard1/log
mkdir -p mongodb/data/dbs/shard2/data
mkdir -p mongodb/data/dbs/shard2/log
mkdir -p mongodb/data/dbs/shard3/data 
mkdir -p mongodb/data/dbs/shard3/log
mkdir -p mongodb/data/dbs/config/data
mkdir -p mongodb/data/dbs/config/log
mkdir -p mongodb/data/dbs/mongos/log

 

2,准备数据节点(shard)

mongod --dbpath mongodb/data/dbs/shard1/data --logpath mongodb/data/dbs/shard1/log/mongodb.log --shardsvr --port 10001 --fork
mongod --dbpath mongodb/data/dbs/shard2/data --logpath mongodb/data/dbs/shard2/log/mongodb.log --shardsvr --port 10002 --fork
mongod --dbpath mongodb/data/dbs/shard3/data --logpath mongodb/data/dbs/shard3/log/mongodb.log --shardsvr --port 10003 --fork

3,准备config节点

mongod --dbpath mongodb/data/dbs/config/data --logpath mongodb/data/dbs/config/log/mongodb.log --port 10004 --configsvr --replSet cs --fork

配置信息:

1)连接上route节点:mongo localhost:10004

2)输入以下命令

 

use admin
cfg = {
    _id:'cs',
    configsvr:true,
    members:[
        {_id:0,host:'localhost:10004'}
     ]
};

rs.initiate(cfg);

 

 

4,准备route节点(mongos)

mongos --configdb cs/localhost:10004 --logpath mongodb/data/dbs/mongos/log/mongodb.log --port 10005 --fork

1)连接上route节点:mongo localhost:10005

2)输入以下命令

sh.addShard('localhost:10001');
sh.addShard('localhost:10002');
sh.addShard('localhost:10003');

sh.status()

5,测试

1)连接上route节点:mongo localhost:10005

2)输入以下命令

use test
sh.enableSharding('test');
sh.shardCollection('test.user',{uid:1})
for(i=-100;i<1000;i++){db.user.insert({uid:i,username:'test-'+i});}

3)  sh.status()

然后去各个节点查看数据分布情况。

本文转载自:

共有 人打赏支持
上一篇: JVM
下一篇: MongoDB 安装篇
STINGWOH
粉丝 2
博文 49
码字总数 11745
作品 0
苏州
私信 提问
MongoDB高可用方案原理解析

MongoDB 是当前比较流行的文档型数据库,其拥有易使用、易扩展、功能丰富、性能卓越等特性。MongoDB 本身就拥有高可用及分区的解决方案,分别为副本集(Replica Set)和分片(sharding),下面我...

arthur376
2018/08/27
0
0
mongodb 集群搭建 分片+副本集

mkdir -p /home/mongodb/conf mkdir -p /home/mongodb/mongos/log mkdir -p /home/mongodb/config/data mkdir -p /home/mongodb/config/log mkdir -p /home/mongodb/shard1/data mkdir -p /h......

674591788
2018/06/26
0
0
MongoDB分片及副本集配置说明

MongoDB分片及副本集配置说明 目录 MongoDB分片及副本集配置说明... 1 第一部分 副本集... 2 第一步 副本集部署... 3 第二步 副本集初始化(在哪个端口下初始化都行). 4 第三步 启动仲裁服务器...

凯文加内特
2014/05/23
0
2
FoundationDB 开源文档数据库模型 Document Layer​​​​​​​

昨日,FoundationDB 数据库宣布开源 FoundationDB Document Layer,Document Layer 是 FoundationDB 数据库中的文档数据模型,扩展了 FoundationDB 作为 Key-Value 数据库的核心功能。Found...

局长
2018/12/02
0
0
​FoundationDB 数据库的文档数据模型 - FoundationDB Document Layer

Document Layer 是 FoundationDB 数据库中的文档数据模型,扩展了 FoundationDB 作为 Key-Value 数据库的核心功能,并实现了 MongoDB wire protocol。 至于所谓“层(layers)”这个概念源于 ...

匿名
2018/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里云vpc、快照、镜像、重置密码_重启_关机、磁盘扩容

VPC 专有网络VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如ECS、负载均...

李超小牛子
22分钟前
1
0
阿里高级技术专家:研发效能的追求永无止境

背景 大约在5年前,也就是2013年我刚加入阿里的时候,那个时候 DevOps 的风刚吹起来没多久,有家公司宣称能够一天发布几十上百次,这意味着相比传统软件公司几周一次的发布来说,他们响应商业...

阿里云官方博客
51分钟前
1
0
Android 的 ViewModel 机制源码解析

Android ViewModel 的好处是会随 Activity 销毁调用它的 clear() 方法。 我们分析一下它是怎么做到的。 1. 例子使用: a、 创建类 TestMvvmViewModel 继承 ViewModel,重写 onCleared() ,把...

亭子happy
今天
2
0
WEB 开发总结

事务处理 事务的4个基本特征 1.Atomic(原子性),事务中包含的操作被看做是一个整体的业务单元,这个业务单元中的操作要么全部成功,要么全部失败,不会出现部分成功,部分失败的场景。 2....

北漂的我
今天
3
0
thinkphp5 利用七牛云 将amr格式语音文件转为mp3

$card_id 是我的本地的文件 将问价名字的后缀名去掉注意access_token的有效期public function ceshi1($card_id){ $mediaid = substr($card_id, 0, -4); $accessKey = ...

小小小壮
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部