大数据处理框架深入解读.docx

上传人:lao****ou 文档编号:373544 上传时间:2023-10-07 格式:DOCX 页数:17 大小:37.52KB
下载 相关 举报
大数据处理框架深入解读.docx_第1页
第1页 / 共17页
大数据处理框架深入解读.docx_第2页
第2页 / 共17页
大数据处理框架深入解读.docx_第3页
第3页 / 共17页
大数据处理框架深入解读.docx_第4页
第4页 / 共17页
大数据处理框架深入解读.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《大数据处理框架深入解读.docx》由会员分享,可在线阅读,更多相关《大数据处理框架深入解读.docx(17页珍藏版)》请在第一文库网上搜索。

1、大数据处理框架深入解读目录大数据处理框架深入解读1前言3一、基础41大数据的定义42 .大数据的特征4V o1ume5V e1ocity5V ariety53 .大数据处理流程64 .大数据处理框架的定义6二、数据处理框架分类7三、批处理系统8ApacheHadoop8四、流处理系统10APaCheStorm.11APaCheSaiT1Za.12五、混合处理系统:批处理和流处理13ApacheSpark14ApacheF1ink15六、大数据处理框架的选择171 .对于初学者172 .对于企业应用18前言说起大数据处理,一切都起源于GoogIe公司的经典论文:MapReduce:Simp1ie

2、dDataProcessingon1argeC1usterso在当时(2000年左右),由于网页数量急剧增加,GOOgIe公司内部平时要编写很多的程序来处理大量的原始数据:爬虫爬到的网页、网页请求日志;计算各种类型的派生数据:倒排索引、网页的各种图结构等等。这些计算在概念上很容易理解,但由于输入数据量很大,单机难以处理。所以需要利用分布式的方式完成计算,并且需要考虑如何进行并行计算、分配数据和处理失败等等问题。针对这些复杂的问题,GoogIe决定设计一套抽象模型来执行这些简单计算,并隐藏并发、容错、数据分布和均衡负载等方面的细节。受到1iSP和其它函数式编程语言map、reduce思想的启发,

3、论文的作者意识到许多计算都涉及对每条数据执行map操作,得到一批中间key/va1ue对,然后利用reduce操作合并那些key值相同的k-V对。这种模型能很容易实现大规模并行计算。事实上,与很多人理解不同的是,MaPRedUCe对大数据计算的最大贡献,其实并不是它名字直观显示的MaP和RedUCe思想(正如上文提到的,MaP和RedUCe思想在1iSP等函数式编程语言中很早就存在了),而是这个计算框架可以运行在一群廉价的PC机上。MapReduce的伟大之处在于给大众们普及了工业界对于大数据计算的理解:它提供了良好的横向扩展性和容错处理机制,至此大数据计算由集中式过渡至分布式。以前,想对更多

4、的数据进行计算就要造更快的计算机,而现在只需要添加计算节点。话说当年的GOOgIe有三宝:MapReduceGFS和BigTab1eo但GOOg1e三宝虽好,寻常百姓想用却用不上,原因很简单:它们都不开源。于是HadooP应运而生,初代Hadoop的MapReduce和I1DES即为Goog1e的MapReduce和GFS的开源实现(另一宝BigTabIe的开源实现是同样大名鼎鼎的HBaSe)o自此,大数据处理框架的历史大幕正式的缓缓拉开。一、基础1 .大数据的定义“大数据”一词的确切定义其实是很难给出的,因为不同的人(供应商、从业者、商业公司等)对它的理解也并不完全一致。通常来讲,大数据是:

5、.大数据集用于处理大数据集的某类技术此处的“大数据集”是指一个数据集的数据量太大以至于无法使用传统工具或单机方式来处理和存储,而处理技术包括数据接入、数据持久化存储、数据计算和分析、数据展示(可视化)等等。2 .大数据的特征大数据系统的基本需求与传统系统并没有本质上的不同。但大数据系统虽然具有海量的数据规模,但是对数据的接入和处理速度上也有较高的要求,而且在每个阶段都要对数据进行处理。这些特点还是为设计解决方案时提供了新的挑战。在2001年,美国Gartner公司的DOUg1aney首先提出了3V”模型来描述大数据处理系统与传统数据处理系统的不同:Vo1ume待处理数据的规模在很大程度决定了系

6、统是否为大数据系统。大数据系统中的数据规模可能比传统处理系统中的数据集大几个数量级,这也为数据处理和存储带来了更多的挑战。由于数据处理和存储等工作超出了单台计算机所能达到的性能极限,所以大数据系统通常采用集群方式。集群方式更加考验资源的分配和协调,集群管理和任务分配算法变得越来越重要。Ve1ocity大数据与其他数据系统另一个显著的差异体现在数据的“流动”速度。在大数据系统中,数据经常从多种数据源流入系统,并且以一种近实时的方式进行处理。数据被持续不断的接入、修改、处理和分析以便能够跟得上新数据的接入速度。由于近实时处理可以尽早的提供有价值的信息,目前很多商业公司更加青睐于实时处理系统而不是传

7、统的批处理系统。Variety大数据系统的问题通常是其他系统所不具备的,因为它所处理的数据来源广泛。数据源可以是应用程序的日志信息,也可以是社交媒体的用户信息,甚至是物理设备传感器的采集数据。不论何种数据,大数据系统的目标都是在海量数据中寻找有用的数据。3 .大数据处理流程那么大数据系统实际上是如何处理数据的呢?虽然不同公司的架构设计不尽相同,但我们可以总结出一个基本的流程。下面介绍的流程虽然不是适用于所有情况,但它们确实被广泛使用。大数据处理的基本流程是: 接入数据到系统中 将数据持久化到存储系统 计算和分析数据 展示结果(可视化)4 .大数据处理框架的定义说完了大数据,我们来说说本文的重点

8、一一大数据处理框架。大数据处理框架负责对大数据系统中的数据进行计算。数据包括从持久存储中读取的数据或通过消息队列等方式接入到系统中的数据,而计算则是从数据中提取信息的过程。除了大数据处理框架,有些同学可能还听到过“大数据计算框架“、“大数据框架”,这些术语没有严格的区分,但基本可以理解为是一种东西,只不过是对bigdataprocessingframework,不同的翻译(大数据框架是“bigdataframeworkv的翻译)。还有一个名词是“大数据处理引擎”,那么这个“引擎”和我们说的“框架”又有什么关系呢?其实并没有区分他们的权威的定义,但一般来说,前者是实际负责处理操作的组件,而后者可

9、以理解为用来完成同样工作的一系列组件。比如ApacheHadoop可以看做是以MapReduce为默认处理引擎的处理框架。二、数据处理框架分类不论是系统中存在的历史数据,还是持续不断接入系统中的实时数据,只要数据是可访问的,我们就可以对数据进行处理。按照对所处理的数据形式和得到结果的时效性分类,数据处理框架可以分为两类:批处理系统流处理系统批处理是一种用来计算大规模数据集的方法。批处理的过程包括将任务分解为较小的任务,分别在集群中的每个计算机上进行计算,根据中间结果重新组合数据,然后计算和组合最终结果。当处理非常巨大的数据集时,批处理系统是最有效的。典型的批处理系统就是APaCheIIadoo

10、p0而流处理则对由连续不断的单条数据项组成的数据流进行操作,注重数据处理结果的时效性。典型的流处理系统有ApacheStorm,ApacheSamzao还有一种系统,同时具备批处理与流处理的能力,这种称为混合处理系统,比如APaCheSpark,ApacheF1inko接下来我们来详细介绍这三种处理系统。三、批处理系统批处理系统在大数据世界中有着悠久的历史。批处理系统主要操作大量的、静态的数据,并且等到全部处理完成后才能得到返回的结果。批处理系统中的数据集一般符合以下特征:有限:数据集中的数据必须是有限的(无限的数据一批就处理不完了啊。连续不断的数据一般会使用流处理系统来进行处理,我们后面会讲

11、到)持久:批处理系统处理的数据一般存储在持久存储系统上(比如硬盘上、数据库中).海量:极海量的数据通常只能使用批处理系统来处理。批处理系统在设计之初就充分的考虑了数据量巨大的问题,实际上批处理系统也是为此而生的。由于批处理系统在处理海量的持久数据方面表现出色,所以它通常被用来处理历史数据,很多O1AP(在线分析处理)系统的底层计算框架就是使用的批处理系统。但是由于海量数据的处理需要耗费很多时间,所以批处理系统一般不适合用于对延时要求较高的场景。ApacheHadoop说起大数据处理框架,永远也绕不开HaeIoop。HaeIooP是首个在开源社区获得极大关注的大数据处理框架,在很长一段时间内,它

12、几乎可以作为大数据技术的代名词。在2.0版本以后,Hadoop由以下组件组成: HadOOP分布式文件系统HDFS:HDFS是一种分布式文件系统,它具有很高的容错性,适合部署在廉价的机器集群上。HDFS能提供高吞吐量的数据访问,非常适合在大规模数据集上使用。它可以用于存储数据源,也可以存储计算的最终结果。 资源管理器YARN:YARN可以为上层应用提供统一的资源管理和调度,它可以管理服务器的资源(主要是CPU和内存),并负责调度作业的运行。在HadoOP中,它被设计用来管理MaPRedUCe的计算服务。但现在很多其他的大数据处理框架也可以将YARN作为资源管理器,比如Sparko MapRed

13、uce:即为HadOOP中默认的数据处理引擎,也是GoOg1e的MaPRedUCe论文思想的开源实现。使用HDFS作为数据源,使用YARN进行资源管理。从今天的眼光来看,MaPRedUCe作为HadooP默认的数据处理引擎,存在着很多的不足。比如:编程模型抽象程度较低,仅支持MaP和RedUCe两种操作,需要手工编写大量的代码;MaP的中间结果需要写入磁盘,多个MR之间需要使用HDFS交换数据,因此不适合迭代计算(机器学习、图计算);任务的启动和调度开销较大等。随着更多高性能处理引擎的发展,目前在企业中使用MaPRedUCe进行计算的应用已经呈下降趋势(HDFS及YARN仍然被广泛使用),但虽

14、然如此,MaPRedUCe作为最早的大数据处理引擎,仍然值得被我们铭记。四、流处理系统批处理系统好理解,那什么是流处理系统呢?小学的时候我们都做过这么一道数学题:一个水池有一个进水管和一个出水管,只打开进水管8个小时充满水,只打开出水管6个小时流光水,那么同时打开进水管和出水管,水池多长时间充满水?好吧,这道题的答案是永远也充不满因为出水管出水比较快嘛。流处理系统就相当于这个水池,把流进来的水(数据)进行加工,比如加盐让它变成盐水,然后再把加工过的水(数据)从出水管放出去。这样,数据就像水流一样永不停止,而且在水池中就被处理过了。所以,这种处理永不停止的接入数据的系统就叫做流处理系统。流处理系

15、统与批处理系统所处理的数据不同之处在于,流处理系统并不对已经存在的数据集进行操作,而是对从外部系统接入的的数据进行处理。流处理系统可以分为两种:逐项处理:每次处理一条数据,是真正意义上的流处理。微批处理:这种处理方式把一小段时间内的数据当作一个微批次,对这个微批次内的数据进行处理。不论是哪种处理方式,其实时性都要远远好于批处理系统。因此,流处理系统非常适合应用于对实时性要求较高的场景,比如日志分析,设备监控、网站实时流量变化等等。由于很多情况下,我们想要尽快看到计算结果,所以近些年流处理系统的应用越来越广泛。下面我们来了解两种流处理系统。ApacheStormpacheStOrm是一种侧重于低延迟的流处理框架,它可以处理海量的接入数据,以近实时方式处理数据。Storm延时可以达到亚秒级。StOnn含有如下关键概念: Topo1ogy:Stormtopo1ogy中封装了实时应用程序的逻辑。Stormtopo1ogy类似于MapReduce作业,但区别是MapReduce最终会完成,而topo1ogy则会一直运行(除非被强制停止)。ToPOIOgy是由SPOUtS和bo1ts组成的DAG

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服