作家
登录

大数据处理框架的类型、比较和选择

作者: 来源: 2017-09-07 09:12:57 阅读 我要评论

大年夜数据处理框架的类型、比较和选择

媒介

说起大年夜数据处理,一切都来源竽暌冠Google公司的经典论文:《MapReduce:Simplied Data Processing />

2、流处理体系

批处理是一种用来计算大年夜范围数据集的办法。批处理的过程包含将义务分化为较小的义务,分别在集群中的每个计算机长进行计算,根据中心结不雅从新组合数据,然后计算和组合最终结不雅。当处理异常巨大年夜的数据集时,批处理体系是最有效的。

典范的批处理体系就是Apache Hadoop。而流处理则对由持续赓续的单条数据项构成的数据流进行操作,重视数据处理结不雅的时效性。典范的流处理体系有Apache Storm,Apache Samza。还有一种体系,同时具备批处理与流处理的才能,这种称为混淆处理体系,比如Apache Spark,Apache Flink。接下来我们来具体介绍这三种处理体系。

Partition:每个topic都有1到多个partition,便于分散到不合的borker中。多个partition的数据归并在一路构成了topic完全的数据。

三、批处理体系

批处理体系在大年夜数据世比赛有着悠长的汗青。批处理体系重要操作大年夜量的、静态的数据,并且比及全部处理完成后才能获得返回的结不雅。批处理体系中的数据集一般相符以下特点:

有限: 数据集中的数据必须是有限的(无穷的数据一批就处理不完了啊。持续赓续的数据一般会应用流处理体系来进行处理,我们后面会讲到)

海量: 极海量的数据平日只能应用批处理体系来处理。批处理体系在设计之初就充分的┞峰酌了数据量巨大年夜的问题,实际上批处理体系也是为此而生的。

因为批处理体系在处理海量的持久数据方面表示出色,所以它平日被用来处理汗青数据,很多OLAP(在线分析处理)体系的底层计算框架就是应用的批处理体系。然则因为海量数据的处理须要消费很多时光,所以批处理系同一般不合实用于对延时请求较高的场景。

Apache Hadoop

说起大年夜数据处理框架,永远也绕不开Hadoop。Hadoop是首个在开源社区获得极大年夜存眷的大年夜数据处理框架,在很长一段时光内,它几乎可以作为大年夜数据技巧的代名词。在2.0版本今后,Hadoop由以下组件构成:

资本治理器YARN:YARN可认为上层应用供给同一的资本治理和调剂,它可以治理办事器的资本(主如果CPU和内存),并负责调剂功课的运行。在Hadoop中,它被设计用来治理MapReduce的计算办事。但如今很多其他的大年夜数据处理框架也可以将YARN作为资本治理器,比如Spark。

MapReduce:即为Hadoop中默认的数据处理引擎,也是Google的MapReduce论文思惟的开源实现。应用HDFS作为数据源,应用YARN进行资本治理。

固然Kafka被广泛应用于各类流处理体系做数据源,但Samza可以更好的发挥Kafka架构的优势。根据官网的解释,Samza由三个层次构成:

  • 数据流层
  • 履行层
  • 处理层

大年夜今天的眼光来看,MapReduce作为Hadoop默认的数据处理引擎,存在着很多的不足。比如:编程模型抽象程度较低,仅支撑Map和Reduce两种操作,须要手工编写大年夜量的代码;Map的中心结不雅须要写入磁盘,多个MR之间须要应用HDFS交换数据,是以不合适迭代计算(机械进修、图计算);义务的启动和调剂开销较大年夜等。跟着更多高机能处理引擎的成长,今朝在企业中应用MapReduce进行计算的应用已经呈降低趋势(HDFS及YARN仍然被广泛应用),但固然如斯,MapReduce作为最早的大年夜数据处理引擎,仍然值得被我们铭记。

四、流处理体系

批处理体系好懂得,那什么是流处理体系呢?小学的时刻我们都做过这么一道数学题:一个水池有一个进水管和一个出水管,只打开进水管8个小时充斥水,只打开出水管6个小时流光水,那么同时打开进水管和出水管,水池多长时光充斥水?

好吧,这道题的谜底是永远也充不满……因为出水管出水比较快嘛。流处理体系就相当于这个水池,把流进来的水(数据)进行加工,比如加盐让它变成盐水,然后再把加工过的水(数据)大年夜出水管放出去。如许,数据就像水流一样永一向止,并且在水池中就被处理过了。所以,这种处理永一向止的接入数据的体系就叫做流处理体系。

逐项处理: 每次处理一条数据,是真正意义上的流处理。

微批处理: 这种处理方法把一小段时光内的数据算作一个微批次,对这个微批次内的数据进行处理。

Apache Storm

Apache Spark

Apache Storm是一种侧重于低延迟的流处理框架,它可以处理海量的接入数据,以近及时方法处理数据。Storm延时可以达到亚秒级。Storm含有如下关键概念:

Topology:Storm topology中封装了及时应用法度榜样的逻辑。Storm topology类似于MapReduce功课,但差别是MapReduce最终会完成,而topology则会一向运行(除非被强迫停止)。Topology是由spouts和bolts构成的DAG(有向无环图)。

Spout:Spout是topology中Stream的源。Spout大年夜外部数据源攫取数据并接入到Strom体系中

Bolt:Bolt用于Storm中的数据处理,它可以进行过滤、聚合、连接等操作。将不合的bolt连接构成完全的数据处理链条,最后一个bolt用来输出(到文件体系或数据库等)。

Storm的根本思惟是应用spout拉取stream(数据),并应用bolt进行处理和输出。默认情况下Storm供给了“at least once”的包管,即每条数据被至少花费一次。当一些间谍作况(比如办事器故障等)产生时,可能会导致反复花费。为了实现“exactly once”(即竽暌剐且仅有一次花费),Storm惹人了Trident。Trident可以将Storm的单条处理方法改变魏微批处理方法,但同时也会对Storm的处理才能产生必定的影响。

值得一提的是,一些国内的公司在Storm的基本长进行了改进,为推动流处理体系的成长做出了很大年夜供献。阿里巴巴的JStorm参考了Storm,并在收集IO、线程模型、资本调剂及稳定性上做了改进。而华为的StreamCQL则为Storm供给了SQL萌芽语义。


  推荐阅读

  KSQL,用于Apache Kafka的流数据SQL引擎

Kafka拓扑构造Kafka的设计可以赞助用户解决很多架构汕9依υ?题,其具备的高机能、低耦合、高靠得住性、数据不损掉等特点,结合实际的应用体系应用处景,可以或许异常知足用户的需求。>>>详细阅读


本文标题:大数据处理框架的类型、比较和选择

地址:http://www.17bianji.com/lsqh/37199.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)