您当前的位置:首页 > 互联网百科 > 大数据

深度解析大数据处理系统关键层次架构

时间:2019-05-15 11:04:09  来源:  作者:

在数据存储层,还有很多类似的系统和某些系统的变种,这里,仅仅列出较为出名的几个。

深度解析大数据处理系统关键层次架构

 

一、数据存储层

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

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

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

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

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

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

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

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

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

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

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

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

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

2、ACID

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

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

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

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

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

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

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

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

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

三、调度器(Schedulers)

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

计算能力调度器

公平调度器

延迟调度

公平与能力调度器

(2)协调器(Coordination)

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

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

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

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

四、计算框架(Computational Frameworks)

(0)运行时计算框架

可为不同种类的计算,提供运行时(runtime)环境。最常用的是运行时计算框架是Spark和Flink。

Spark:Spark是一个基于内存计算的开源的集群计算系统,其目的在于,让数据分析更加快速。Spark是由加州大学伯克利分校的AMP实验室采用Scala语言开发而成。Spark的内存计算框架,适合各种迭代算法和交互式数据分析,能够提升大数据处理的实时性和准确性,现已逐渐获得很多企业的支持,如阿里巴巴、百度、网易、英特尔等公司均是其用户。

Flink:这是一个非常类似于Spark的计算框架,但在迭代式数据处理上,比Spark更给力(注:目前大数据分析引擎Flink,已升级成为Apache顶级项目)。

Spark和Flink都属于基础性的大数据处理引擎。具体的计算框架,大体上,可根据采用的模型及延迟的处理不同,来进行分门别类。

(1)批处理(Batch)

MapReduce

(2)迭代式(BSP)

Pregel:Pregel是一种面向图算法的分布式编程框架,其采用的是迭代式的计算模型。它被称之为Google后Hadoop时代的新“三驾马车”之一。另外两驾马车分别是:“交互式”大数据分析系统Dremel和网络搜索引擎Caffeine。

Giraph:该系统建模于谷歌的Pregel,可视为Pregel的开源版本,它是一个基于 Hadoop架构的、可扩展的分布式迭代图处理系统。

GraphX:这是一个同时采用图并行计算和数据并行的计算框架,GraphX最先是加州大学伯克利分校AMPLab实验室的一个分布式图计算框架项目,后来整合到Spark中,成为其中的一个核心组件。GraphX最大的贡献在于,在Spark之上提供一栈式数据解决方案,可方便高效地完成图计算的一整套流水作业。

Hama:是一个构建Hadoop之上的基于BSP模型的分布式计算引擎,Hama的运行环境需要关联 Zookeeper、HBase、HDFS 组件。Hama中最关键的技术,就是采用了BSP模型(Bulk Synchronous Parallel,即整体同步并行计算模型,又名大同步模型)。

(3)流式(Streaming)

Storm:Storm有时也被人们称为实时处理领域的Hadoop,它大大简化了面向庞大规模数据流的处理机制,从而在实时处理领域扮演着重要角色。

Samza:这是一款由Linkedin公司开发的分布式的流式数据处理框架(注:所谓流式数据,是指要在处理单位内得到的数据,这种方式更注重于实时性,流式数据有时也称为快数据)。

Spark流:Spark Streaming是Spark 核心API的一个扩展,它并不会像Storm那样逐个处理数据流,而是在处理前,按时间间隔预先将其切分为很多小段的批处理作业。

(4)交互式(Interactive)

Dremel该论文是多个基于Hadoop的开源SQL系统的理论基础。

Impala:这是一个大规模并行处理(MPP)式 SQL 大数据分析引擎,Impala像Dremel一样,其借鉴了MPP(Massively Parallel Processing,大规模并行处理)并行数据库的思想,抛弃了MapReduce这个不太适合做SQL查询的范式,从而让Hadoop支持处理交互式的工作负载。

Drill:这是谷歌 Dremel的开源版本,Drill是一个低延迟的、能对海量数据(包括结构化、半结构化及嵌套数据)实施交互式查询的分布式数据引擎。

Shark:Shark即“Hive on Spark”的含义,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作。然后通过Hive的元数据获,取数据库里的表信息。HDFS上的数据和文件,最后会由Shark获取,并放到Spark上运算。Shark基于 Scala语言的算子推导,可实现良好的容错机制,对执行失败的长/短任务,均能从上一个“快照点(Snapshot)”进行快速恢复。

Dryad:Dryad是一个通用的粗颗粒度的分布式计算和资源调度引擎,其核心特性之一,就是允许用户自己构建DAG调度拓扑图。

Tez:其核心思想来源于Dryad,可视为利用Yarn(即MRv2)对Dryad的开源实现。Apache Tez是基于Hadoop Yarn之上的DAG计算框架。

BlinkDB:可在抽样数据上实现交互式查询,其呈现出的查询结果,附带有误差标识。BlinkDB 是一个用于在海量数据上运行交互式 SQL 查询的大规模并行查询引擎。BlinkDB允许用户通过适当降低数据精度,对数据进行先采样后计算,其通过其独特的优化技术,实现了比Hive快百倍的交互式查询速度,而查询进度误差仅降低2~10%。

(5)实时系统(RealTime)

Druid:这是一个开源的分布式实时数据分析和存储系统,旨在快速处理大规模的数据,并能做到快速查询和分析。

Pinot:这是由LinkedIn公司出品的一个开源的、实时分布式的 OLAP数据分析存储系统,非常类似于前面提到的Druid,LinkedIn 使用它实现低延迟可伸缩的实时分析。

五、数据分析层(Data Analysis)

数据分析层中的工具,涵盖范围很广,从诸如SQL的声明式编程语言,到诸如Pig的过程化编程语言,均有涉及。另一方面,数据分析层中的库也很丰富,可支持常见的数据挖掘和机器学习算法,这些类库可拿来即用,甚是方便。

(1)工具(Tools)

Pig:Pig Latin原是一种儿童黑话,属于是一种英语语言游戏,形式是在英语上加上一点规则使发音改变,让大人们听不懂,从而完成孩子们独懂的交流。雅虎的工程师们于2008年发表在SIGMOD的一篇论文,论文的题目是“Pig Latin:并不是太老外的一种数据语言”,言外之意,他们发明了一种数据处理的“黑话”——Pig Latin,一开始你可能不懂,等你熟悉了,就会发现这种数据查询语言的乐趣所在。

Hive:Hive是一个建立于 Hadoop 上的数据仓库基础构架。它用来进行数据的提取、转化和加载(即Extract-Transform-Load ,ETL),它是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。

Phoenix:它是 HBase 的 SQL 驱动,Phoenix可将 SQL 查询转成 HBase 的扫描及相应的动作。

(2)库(Libraires)

MLlib:这是在Spark计算框架中对常用的机器学习算法的实现库,该库还包括相关的测试和数据生成器。

SparkR:这是AMPLab发布的一个R开发包,为Apache Spark提供轻量级的前端。

Mahout:这是一个功能强大的数据挖掘工具,是一个基于传统Map Reduce的分布式机器学习框架,Mahout的中文含义就是“驭象之人”,而Hadoop的Logo正是一头小黄象。很明显,这个库是帮助用户用好Hadoop这头难用的大象。

六、数据集成层(Data Integration)

数据集成框架提供了良好的机制,以协助高效地摄取和输出大数据系统之间的数据。从业务流程线到元数据框架,数据集成层皆有涵盖,从而提供全方位的数据在整个生命周期的管理和治理。

(1)摄入/消息传递(Ingest/Messaging)

Flume:这是Apache旗下的一个分布式的、高可靠的、高可用的服务框架,可协助从分散式或集中式数据源采集、聚合和传输海量日志。

Sqoop:该系统主要用来在Hadoop和关系数据库中传递数据,Sqoop目前已成为Apache的顶级项目之一。

Kafka:这是由LinkedIn开发的一个分布式消息系统,由Scala编写而成。由于可水平扩展、吞吐率高等特性,得到广泛应用。

(2)ETL/工作流

ETL是数据抽取(Extract)、清洗(Cleaning)、转换(Transform)、装载(Load)的过程,是构建数据仓库的重要一环。

Crunch:这是Apache旗下的一套Java API函数库,它能够大大简化编写、测试、运行MapReduce 处理工作流的程序。

Falcon:这是Apache旗下的Falcon大数据管理框架,可以帮助用户自动迁移和处理大数据集合。

Cascading:这是一个架构在Hadoop上的API函数库,用来创建复杂的可容错的数据处理工作流。

Oozie:是一个工作流引擎,用来协助Hadoop作业管理,Oozie字面含义是驯象之人,其寓意和Mahout一样,帮助用户更好地搞定Hadoop这头大象。

(3)元数据(Metadata)

HCatalog: 它提供了面向Apache Hadoop的数据表和存储管理服务,Apache HCatalog提供一个共享的模式和数据类型的机制,它抽象出表,使用户不必关心数据怎么存储,并提供了可操作的跨数据处理工具。

(4)序列化(Serialization)

Protocol Buffers:由Google推广的一种与语言无关的、对结构化数据进行序列化和反序列化的机制。

Avro:这是一个建模于Protocol Buffers之上的、Hadoop生态系统中的子项目,Avro本身既是一个序列化框架,同时也实现了RPC的功能。

七、操作框架(Operational Frameworks)

最后,我们还需要一个操作性框架,来构建一套衡量标准和测试基准,从而来评价各种计算框架的性能优劣。在这个操作性框架中,还需要包括性能优化工具,借助它来平衡工作负载。

(1)监测管理框架(Monitoring Frameworks)

OpenTSDB:这是构建于HBase之上的实时性能评测系统。

Ambari:这是一款基于Web的系统,支持Apache Hadoop集群的供应、管理和监控。

(2)基准测试(Benchmarking)

YCSB:YCSB是雅虎云服务基准测试(Yahoo! Cloud Serving Benchmark)的简写。见名知意,它是由雅虎出品的一款通用云服务性能测试工具。

GridMix:该系统通过运行大量合成的作业,对Hadoop系统进行基准测试,从而获得性能评价指标。

结语

感谢您的观看,如有不足之处,欢迎批评指正。
 



Tags:大数据   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
为啥这几年偷税漏税的新闻这么多?不是偷的人多了,是因为国家有了查税大杀器: ...【详细内容】
2021-12-24  Tags: 大数据  点击:(10)  评论:(0)  加入收藏
张欣安科瑞电气股份有限公司 上海嘉定 201801 摘要:随着电力行业各系统接入,海量数据涌现,如何利用电网信息化中大量数据,对客户需求进行判断分析,服务于营销链条,提升企业市场竞...【详细内容】
2021-12-14  Tags: 大数据  点击:(10)  评论:(0)  加入收藏
1、什么是数据分析结合分析工具,运用数据分析思维,分析庞杂数据信息,为业务赋能。 2、数据分析师工作的核心流程:(1)界定问题:明确具体问题是什么;●what 发生了什么(是什么)●why 为...【详细内容】
2021-12-01  Tags: 大数据  点击:(26)  评论:(0)  加入收藏
数据作为新的生产要素,其蕴含的价值日益凸显,而安全问题却愈发突出。密码技术,是实现数据安全最经济、最有效、最可靠的手段,对数据进行加密,并结合有效的密钥保护手段,可在开放环...【详细内容】
2021-11-26  Tags: 大数据  点击:(17)  评论:(0)  加入收藏
导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享...【详细内容】
2021-11-26  Tags: 大数据  点击:(15)  评论:(0)  加入收藏
日前,北京市人力资源和社会保障局发布《2021年北京市人力资源市场薪酬大数据报告》,《报告》基于本市2020年度相关调研数据,按照行业、职位、群体等维度对薪酬数据进行了分析,首...【详细内容】
2021-11-04  Tags: 大数据  点击:(28)  评论:(0)  加入收藏
架构是数据仓库建设的总体规划,从整体视角描述了解决方案的高层模型,描述了各个子系统的功能以及关系,描述了数据从源系统到决策系统的数据流程。业务需求回答了要做什么,架构就...【详细内容】
2021-11-03  Tags: 大数据  点击:(35)  评论:(0)  加入收藏
同一产品对老客户的要价竟然比新客户要高?这是当下“大数据杀熟”的直接结果。近年来,随着平台经济的蓬勃发展,大数据在为用户服务之外,也引发了多种不合理现象。为了有效遏制“...【详细内容】
2021-10-29  Tags: 大数据  点击:(31)  评论:(0)  加入收藏
如今社会,手机电话在中国的使用率已达到99%以上,大大的地增强了我们的生活水平。而电话不但用以日常生活,还可以用以工作中,例如电话营销,电话便是他们的武器装备,他们根据手机的...【详细内容】
2021-10-26  Tags: 大数据  点击:(45)  评论:(0)  加入收藏
《个人信息保护法》11月1日即将生效,在大数据营销充斥在网络上的现在,如何引导大数据为善,如何更好的使用开发大数据,变得既重要也有现实意义。...【详细内容】
2021-10-26  Tags: 大数据  点击:(35)  评论:(0)  加入收藏
▌简易百科推荐
前言什么是数据脱敏数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护常用脱敏规则替换、重排、加密、截断、掩码良好的数据脱敏实施1、尽...【详细内容】
2021-12-28  linyb极客之路    Tags:数据脱敏   点击:(3)  评论:(0)  加入收藏
张欣安科瑞电气股份有限公司 上海嘉定 201801 摘要:随着电力行业各系统接入,海量数据涌现,如何利用电网信息化中大量数据,对客户需求进行判断分析,服务于营销链条,提升企业市场竞...【详细内容】
2021-12-14  安科瑞张欣    Tags:大数据   点击:(10)  评论:(0)  加入收藏
1、什么是数据分析结合分析工具,运用数据分析思维,分析庞杂数据信息,为业务赋能。 2、数据分析师工作的核心流程:(1)界定问题:明确具体问题是什么;●what 发生了什么(是什么)●why 为...【详细内容】
2021-12-01  逆风北极光    Tags:大数据   点击:(26)  评论:(0)  加入收藏
在实际工作中,我们经常需要整理各个业务部门发来的数据。不仅分散,而且数据量大、格式多。单是从不同地方汇总整理这些原始数据就花了大量的时间,更不用说还要把有效的数据收集...【详细内容】
2021-11-30  百数    Tags:数据   点击:(21)  评论:(0)  加入收藏
数据作为新的生产要素,其蕴含的价值日益凸显,而安全问题却愈发突出。密码技术,是实现数据安全最经济、最有效、最可靠的手段,对数据进行加密,并结合有效的密钥保护手段,可在开放环...【详细内容】
2021-11-26  炼石网络    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享...【详细内容】
2021-11-26  DataFunTalk    Tags:大数据   点击:(15)  评论:(0)  加入收藏
导读:数据挖掘是一种发现知识的手段。数据挖掘要求数据分析师通过合理的方法,从数据中获取与挖掘项目相关的知识。作者:赵仁乾 田建中 叶本华 常国珍来源:华章科技数据挖掘是一...【详细内容】
2021-11-23  华章科技  今日头条  Tags:数据挖掘   点击:(20)  评论:(0)  加入收藏
今天再给大家分享一个不错的可视化大屏分析平台模板DataColour。 data-colour 可视化分析平台采用前后端分离模式,后端架构设计采用微服务架构模式。 前端技术:Angularjs、Jq...【详细内容】
2021-11-04  web前端进阶    Tags:DashboardClient   点击:(40)  评论:(0)  加入收藏
在Kubernetes已经成了事实上的容器编排标准之下,微服务的部署变得非常容易。但随着微服务规模的扩大,服务治理带来的挑战也会越来越大。在这样的背景下出现了服务可观测性(obs...【详细内容】
2021-11-02  大数据推荐杂谈    Tags:Prometheus   点击:(40)  评论:(0)  加入收藏
同一产品对老客户的要价竟然比新客户要高?这是当下“大数据杀熟”的直接结果。近年来,随着平台经济的蓬勃发展,大数据在为用户服务之外,也引发了多种不合理现象。为了有效遏制“...【详细内容】
2021-10-29    海外网   Tags:大数据   点击:(31)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条