当前位置:技术分享 > 技术参考 > 正文

万博manbetx客户端处理系统关键层次架构2016-12-12 16:06:17 | 编辑:hely | 查看: | 评论:0

在数据存储层,还有很多类似的系统和某些系统的变种,这里,我仅仅列出较为出名的几个。如漏掉某些重要系统,还请谅解。




以下是对上图中各层次架构的说明

一、数据存储层

宽泛地讲,据对一致性(consistency)要求的强弱不同,分布式数据存储策略,可分为ACID和BASE两大阵营。

ACID是指数据库事务具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。ACID中的一致性要求比较强,事务实行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

BASE对一致性要求较弱,它的三个特征分别是:基本可用(Basically Available), 软状态/柔性事务(Soft-state,即状态可以有一段时间的不同步), 最终一致性(Eventual consistency)。BASE还进一步细分基于键值的,基于文档的和基于列和图形的 – 细分的依据取决于底层架构和所支撑的数据结构(注:BASE完全不同于ACID模型,它以牺牲强一致性,获得基本可用性和柔性可靠性,并要求达到最终一致性)。

在数据存储层,还有很多类似的系统和某些系统的变种,这里,我仅仅列出较为出名的几个。如漏掉某些重要系统,还请谅解。

1、BASE

(1)键值存储(Key Value Stores)

Dynamo:这是由AMAZON工程师们设计的基于键值的高可用的分布式存储系统(注:Dynamo放弃了数据建模的能力,所有的数据对象采用最简单的Key-value模型存储,可简单地将Dynamo理解为一个巨大的Map。Dynamo是牺牲了部分一致性,来换取整个系统的高可用性)。

Cassandra:这是由脸书工程师设计的一个离散的分布式结构化存储系统,受AMAZON的Dynamo启发,Cassandra采用的是面向多维的键值或面向列的数据存储格式(注:Cassandra可用来管理分布在大量低价服务器上的巨量结构化数据,并同时提供没有单点故障的高可用服务)。

Voldemort:这又是一个受AMAZON的Dynamo启发的分布式存储作品,由全球最大的职业社交网站LinkedIn的工程师们开发而成。

(2)面向列的存储(Column Oriented Stores)

BigTable:Bigtable是一个基于谷歌文件系统的分布式数据存储系统,是为GOOGLE打拼天下的“三驾马车”之一,另外两驾马车分别是分布式锁服务系统Chubby和下文将提到的MapReduce。

HBase:Hbase是一个分布式的、面向列的开源数据库。其设计理念源自GOOGLE的 BigTable,用Java语言编写而成。

Hypertable:Hypertable也是一个开源、高性能、可伸缩的数据库,它采用与谷歌的Bigtable类似的模型。

(3)面向文档的存储(Document Oriented Stores)

CouchDB:这是一款面向文档的、开源数据存储管理系统。

MongoDB:是目前非常流行的一种非关系型(NoSQL)数据库。

(4)面向图(Graph)的存储

Neo4j:Neo4j是一款目前最为流行的高性能NoSQL 图数据库,它使用图来描述数据模型,把数据保存为图中的节点以及节点之间的关系。这是最流行的图数据库。

Titan:Titan是一款Apache许可证框架下的分布式的开源图数据库,特别为存储和处理大规模图而做了大量优化。

2、ACID

Megastore:这是一个构建于BigTable之上的、高可用的分布式存储系统。

Spanner:这是由GOOGLE研发的、可扩展的、全球分布式的、同步复制数据库,支撑SQL查询访问。

MESA:亦是由GOOGLE研发的、跨地域复制(geo-replicated)、高可用的、可容错的、可扩展的近实时数据仓库系统。

CockroachDB:该系统是由谷歌前工程师Spencer Kimball领导开发的Spanner 的开源版本。

二、资源管理器层(Resource Managers)

第一代Hadoop的生态系统,其资源管理是以整体单一的调度器起家的,其代表作品为YARN。而当前的调度器则是朝着分层调度的方向演进(Mesos则是这个方向的代表作),这种分层的调度方式,可以管理不同类型的计算工作负载,从而可获取更高的资源利用率和调度效率。

YARN:这是新一代的MapReduce计算框架,简称MRv2,它是在第一代MapReduce的基础上演变而来的(注:MRv2的设计初衷是,为了解决第一代Hadoop系统扩展性差、不支撑多计算框架等问题。

Mesos:这是一个开源的计算框架,可对多集群中的资源做弹性管理。

这些计算框架和调度器之间是松散耦合的,调度器的主要功能就是基于一定的调度策略和调度配置,完成作业调度,以达到工作负载均衡,使有限的资源有较高的利用率。

三、调度器(Schedulers)

(1)作业调度器,通常以插件的方式加载于计算框架之上,常见的作业调度器有4种:

计算能力调度器

公平调度器

延迟调度

公平与能力调度器

(2)协调器(Coordination)

在分布式数据系统中,协调器主要用于协调服务和进行状态管理。

Paxos:谷歌的Chubby和Apache的Zookeeper,都是用Paxos作为其理论基础实现的。

Chubby:本质上就是前文提到的Paxos的一个实现版本,主要用于GOOGLE分布式锁服务。

Zookeeper:这是Apache Hadoop框架下的Chubby开源版本。它不仅仅提供简单地上锁服务,而事实上,它还是一个通用的分布式协调器,其设计灵感来自GOOGLE的Chubby。

分享到:0收藏

上一篇:万博manbetx客户端管道技术 推动Hadoop架构与开发模式的变革 千人千面、个性化推荐:解读数据赋能商家背后的AI技术下一篇:

公众平台

搜索"raincent"或扫描下面的二维码

新浪微博 Tencent微博 订阅中心
?