加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数据处理赏罚的要害条理架构

发布时间:2021-05-27 12:39:52 所属栏目:大数据 来源:网络整理
导读:图1、大数据处理赏罚的要害条理架构 以下是对上图中各条理架构的声名 一、数据存储层 宽泛地讲,据对同等性(consistency)要求的强弱差异,漫衍式数据存储计策,可分为ACID和BASE两大阵营。 ACID 是指数据库事宜具有的四个特征:原子性(Atomicity)、同等性(C

大数据处理赏罚的要害条理架构

图1、大数据处理赏罚的要害条理架构

以下是对上图中各条理架构的声名

一、数据存储层

宽泛地讲,据对同等性(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体系举办基准测试,从而得到机能评价指标。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读