NoSql 数据库的部署方式

标签: nosql 数据库 | 发表时间:2015-07-10 21:56 | 作者:geeksun
出处:http://www.iteye.com

一、Redis

Redis是一种基于key-value存储格式的nosql数据库,在结构部署上采用了master/slave的方式,其中slave节点起到备份的作用,当master节点出现问题的时候,slave节点可替换成master,从而确保了系统安全稳定的特性。

 

分布式存储单元:slot(一组key/value存储记录的集合)

 

一个cluster里面可能会有多个matser节点,master节点通过互相通信来记录彼此之间所存储的slot信息,从而确保了client 端可以通过任何master节点定位到需要的slot,获取到slot信息后,client端还会将该slot地址缓存到本地,从而加快了下次查询的效 率。

 

部署结构如图所示:



  

注:图中没有画出slave节点(slave只是起到备份master的作用),所有的圆圈全部为master,并且master之间的通信呈网状结构。

 

二、MongoDB

同CouchDB一样,MongoDB也是一种面向文档的nosql数据库,所不同的是在存储方式上采用的是分布式存储,其部署结构与Redis相似(基于master/slave方式),只不过功能组件较Redis划分的更加详细,如图所示:



  

图片说明:

shard:每一个master节点和用于备份它的slaves称之为一个shard,系统由多个shards组成

config servers:记录了每一个shard的地址,和shard所存储的数据信息

mongos:同Redis的部署结构相比,mongos相当于是master和client之间的一个中间节点,起到路由和协调的功能,client端 不再直接与master进行交互,而是通过mongos找到合适的master,在将master的计算结果返回到client

分布式存储单元:chunk

 

MongoDB中,Collection的概念类似于关系数据库中的Table,用来存储具有某一类性质的数据,而chunk是collection中一组元素的集合,mongoDB通过将每个Collection划分成多个chunk来实现分布式存储。

 

官方文档中所声明的功能特性主要有以下几个方面:

1.系统横向扩展功能--shard的热插拔

2.自动切片功能,当每个chunk的数据量大到溢出时,mongDB会重新进行切片处理

3.自动故障转移,master节点出现问题时,slave节点会替换掉master

4.负载均衡

5.query查询支持(通过JSON表达式来描述)

6.框架封装MapReduce组件

       mapReduce功能函数只能用javascript编写,并且通过控制台命令执行

7.GridFS文档系统--功能类似于Hadoop的HDFS,实现分布式存储功能

 

三、Hbase

HBase基于Google的BigTable构建,是一种column-oriented类型的nosql数据库,在部署结构上依然采用master/slave方式,但是它的master/slave理念与MongoDB和Redis完全不同。

分布式存储单元:Region



 

Hbase的schema描述在概念模型上延续了关系数据的Table定义,只不过它所定义的Table是没有column约束的,Hbase通过将Table切割成多个Region来实现分布式存储的功能,这样每个Region都封装了一组Row的范围。

 

Hbase主要包含了3大功能组件,包括:

1.RegionServer:在HBase中,RegionServer充当slave角色,负责与client端进行交互。

2.MasterServer:充当master角色,负责将Region分配给RegionServer、动态加载或卸载RegionServer、对RegionServer实现负载均衡功能、管理schema定义

3.ClientLibrary:负责查找并缓存RegionServer及它所存储的Region地址(通过METADATATabel)

 

在Hbase部署中,client不再和master进行交互,所有的读写操作都是直接通过RegionServer来完成,而master在此起到了负载均衡的作用,当某一个RegionServer加载量较大时,master可以将其中的Region重新切片部署。

 

官方文档中所声明的功能特性主要有以下几个方面:

1.系统横向扩展功能—RegionServer热插拔

2.基于行的读写一致性

3.自动切片功能(基于Region)

4.自动故障转移

       RegionServer出现问题时,系统会转移到其他的RegionServer进行处理

5.负载均衡

6.集成Hadoop框架

       存储基于Hadoop的HDFS,分布式计算基于Hadoop的MapReduce

7.块缓存功能和丰富的过滤器功能--便于查询操作

8.提供连接池功能

9.基于cell的版本功能

10.java API和REST API

优势:

Query功能强大--HIVE框架支持

功能模块划分详细,基本上每一个功能模块都是通过一个框架来实现



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [nosql 数据库] 推荐:

Oracle 发布 NoSQL 数据库

- 冷月 - 博客园新闻频道
  Oracle 作为全球最大的关系型数据库提供商,在其产品链条中,也加入了 NoSQL 数据库这一环,而且这个新的数据库名字很霸气,就叫 NoSQL Database,想起了当年新浪微博更换 weibo.com 域名之时的一个笑话:. 原来有三家人做面包,张三家的面包叫三张牌面包,李四家的牌子叫李四牌面包,王五家出品的是王五牌面包,而突然有一天,张三家的面包改名了,叫面包牌面包.

nosql数据库选型

- - IT技术博客大学习
标签:   nosql   选型.    今天在书店里翻完了一遍《七天七数据库》. 这本书简单介绍了postgreSQL,riak,mongodb,HBase,riak,Neo4j,redis七个数据,并着重谈了数据库的特性差异和在部署维护时候的特点,并对不同需求下的数据库选型做了很多建议,感觉受益非浅.

NoSQL数据库面面观

- - CSDN博客推荐文章
本文来源于我在InfoQ中文站原创的文章,原文地址是:. Alexey Vasiliev是一位知名的Web开发者与Linux系统管理员,曾参与开发过多个项目,如 falcon、 mongodb_logger、 sht_rails及 piro等项目. 近日,Vasiliev就当前各种NoSQL数据库的优势与劣势 撰文进行了详尽的分析.

NoSQL数据库的出现及选择哪种NoSQL数据库

- - 数据库 - ITeye博客
    在没有NOSQL数据时,关系型数据库一直是数据持久化的唯一选择,比较典型的关系型数据库有SQL Server、Oracle,MySQL,DB2.做.NET开发的同学一般会选择SQL Server,做JAVA的可能会偏向Oracle,MySQL,Python则是PostgreSQL或MySQL等等.

8种Nosql数据库系统对比

- xcv58 - 伯乐在线 -博客
  导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 文章由敏捷翻译 - 唐尤华编译.   虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破. 这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举.

Couchbase Server 2.0 发布,NoSQL 数据库

- - 开源中国社区最新新闻
Couchbase Server 2.0 发布了,主要特性包括:. 增量 Map Reduce. 详细功能描述和下载地址请看:. Couchbase Server (前身是 Membase) 是一个分布式的面向文档的 NoSQL 数据库管理系统,该系统联合了 CouchDB 的简单和可靠以及 Memcached 的高性能以及 Membase 的伸缩性.

NoSQL数据库的分布式算法

- - NoSQLFan
本文英文原文发表于知名技术博客《 Highly Scalable Blog》,对NoSQL数据库中的 分布式算法和思想进行了详细的讲解. 文章很长,由@ 可观 进行翻译投稿. 英文原文:《 Distributed Algorithms in NoSQL Databases》. 译文地址:《 NoSQL数据库的分布式算法》.

NoSQL反模式 - 文档数据库篇

- - 我自然
我们设计关系数据库Schema的都有一套完整的方案,而NoSQL却没有这些. 半年前笔者读了本《SQL反模式》的书,觉得非常好. 就开始留意,对于NoSQL是否也有反模式. 好的反模式可以在我们设计Schema告诉哪里是陷阱和悬崖. NoSQL宣传的时候往往宣称是SchemaLess的,这会让人误解其不需要设计Schema.

八种主流NoSQL数据库对比

- - CSDN博客推荐文章
摘要:虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破. 这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 详见我的IT-Homer博客:  八种主流NoSQL数据库对比. NoSQL,是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储.

NoSQL数据库的分布式算法

- - ITeye资讯频道
系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性. 这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去. 尽管NoSQL运动并没有给分布式数据处理带来根本性的技术变革,但是依然引发了铺天盖地的关于各种协议和算法的研究以及实践. 正是通过这些尝试逐渐总结出了一些行之有效的数据库构建方法.