大数据技术原理与应用厦门大学数据库试验室

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn厦门大学计算机科学系2017年2月版本林子雨厦门大学计算机科学系E-mail:ziyulin@xmu.edu.cn主页:第10章流计算(PPT版本号:2017年2月版本)温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字《大数据技术原理与应用(第2版)》《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn本章配套教学视频《大数据技术原理与应用(第2版)》《第10章流计算》在线视频观看地址《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn提纲10.1流计算概述10.2流计算处理流程10.3流计算应用10.4流计算开源框架–Storm10.5SparkStreaming10.6Samza10.7Storm、SparkStreaming和Samza的应用场景10.8Storm编程实践欢迎访问《大数据技术原理与应用》教材官方网站:本PPT是如下教材的配套讲义:《大数据技术原理与应用——概念、存储、处理、分析与应用》(2017年2月第2版)ISBN:978-7-115-44330-4厦门大学林子雨编著,人民邮电出版社《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn10.1流计算概述•10.1.1静态数据和流数据•10.1.2批量计算和实时计算•10.1.3流计算概念•10.1.4流计算与Hadoop•10.1.5流计算框架《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On-LineAnalyticalProcessing)分析工具从静态数据中找到对企业有价值的信息10.1.1静态数据和流数据《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的数据密集型应用——流数据,即数据以大量、快速、时变的流形式持续到达•实例:PM2.5检测、电子商务网站用户点击流•流数据具有如下特征:–数据快速持续到达,潜在大小也许是无穷无尽的–数据来源众多,格式复杂–数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储–注重数据的整体价值,不过分关注个别数据–数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序10.1.1静态数据和流数据《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算和实时计算10.1.2批量计算和实时计算图8-2数据的两种处理模型•批量计算:充裕时间处理静态数据,如Hadoop•流数据不适合采用批量计算,因为流数据不适合用传统的关系模型建模•流数据必须采用实时计算,响应时间为秒级•数据量少时,不是问题,但是,在大数据时代,数据格式复杂、来源众多、数据量巨大,对实时计算提出了很大的挑战。因此,针对流数据的实时计算——流计算,应运而生《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息10.1.3流计算概念图8-3流计算示意图数据采集实时分析处理结果反馈《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低,如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的处理引擎•对于一个流计算系统来说,它应达到如下需求:–高性能:处理大数据的基本要求,如每秒处理几十万条数据–海量式:支持TB级甚至是PB级的数据规模–实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别–分布式:支持大数据的基本架构,必须能够平滑扩展–易用性:能够快速进行开发和部署–可靠性:能可靠地处理流数据10.1.3流计算概念《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运行MapReduce任务,最后对结果进行汇总输出•MapReduce是专门面向静态数据的批量处理的,内部各种实现机制都为批处理做了高度优化,不适合用于处理持续到达的动态数据•可能会想到一种“变通”的方案来降低批处理的时间延迟——将基于MapReduce的批量处理转为小批量处理,将输入数据切成小的片段,每隔一个周期就启动一次MapReduce作业。但这种方式也无法有效处理流数据–切分成小片段,可以降低延迟,但是也增加了附加开销,还要处理片段之间依赖关系–需要改造MapReduce以支持流式处理10.1.4流计算与Hadoop结论:鱼和熊掌不可兼得,Hadoop擅长批处理,不适合流计算《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•当前业界诞生了许多专门的流数据实时计算系统来满足各自需求•目前有三类常见的流计算框架和平台:商业级的流计算平台、开源流计算框架、公司为支持自身业务开发的流计算框架•商业级:IBMInfoSphereStreams和IBMStreamBase•较为常见的是开源流计算框架,代表如下:–TwitterStorm:免费、开源的分布式实时计算系统,可简单、高效、可靠地处理大量的流数据–Yahoo!S4(SimpleScalableStreamingSystem):开源流计算平台,是通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统•公司为支持自身业务开发的流计算框架:–FacebookPuma–Dstream(百度)–银河流数据处理平台(淘宝)10.1.5流计算框架《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn10.2流计算处理流程•10.2.1概述•10.2.2数据实时采集•10.2.3数据实时计算•10.2.4实时查询服务《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•传统的数据处理流程,需要先采集数据并存储在关系数据库等数据管理系统中,之后由用户通过查询操作和数据管理系统进行交互•传统的数据处理流程隐含了两个前提:–存储的数据是旧的。存储的静态数据是过去某一时刻的快照,这些数据在查询时可能已不具备时效性了–需要用户主动发出查询来获取结果10.2.1数据处理流程传统的数据处理流程示意图数据管理系统用户查询查询结果《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•流计算的处理流程一般包含三个阶段:数据实时采集、数据实时计算、实时查询服务10.2.1数据处理流程流计算处理流程示意图数据实时计算数据实时采集实时查询服务用户查询查询结果《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•数据实时采集阶段通常采集多个数据源的海量数据,需要保证实时性、低延迟与稳定可靠•以日志数据为例,由于分布式集群的广泛应用,数据分散存储在不同的机器上,因此需要实时汇总来自不同机器上的日志数据•目前有许多互联网公司发布的开源分布式日志采集系统均可满足每秒数百MB的数据采集和传输需求,如:–Facebook的Scribe–LinkedIn的Kafka–淘宝的TimeTunnel–基于Hadoop的Chukwa和Flume10.2.2数据实时采集数据实时计算数据实时采集实时查询服务用户查询查询结果《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•数据采集系统的基本架构一般有以下三个部分:–Agent:主动采集数据,并把数据推送到Collector部分–Collector:接收多个Agent的数据,并实现有序、可靠、高性能的转发–Store:存储Collector转发过来的数据(对于流计算不存储数据)10.2.2数据实时采集数据采集系统基本架构AgentAgentAgentCollectorCollectorCollectorStoreStoreStore《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•数据实时计算阶段对采集的数据进行实时的分析和计算,并反馈实时结果•经流处理系统处理后的数据,可视情况进行存储,以便之后再进行分析计算。在时效性要求较高的场景中,处理之后的数据也可以直接丢弃10.2.3数据实时计算数据实时计算流程流处理系统实时计算数据流入数据流出计算结果数据实时计算数据实时采集实时查询服务用户查询查询结果《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•实时查询服务:经由流计算框架得出的结果可供用户进行实时查询、展示或储存•传统的数据处理流程,用户需要主动发出查询才能获得想要的结果。而在流处理流程中,实时查询服务可以不断更新结果,并将用户所需的结果实时推送给用户•虽然通过对传统的数据处理系统进行定时查询,也可以实现不断地更新结果和结果推送,但通过这样的方式获取的结果,仍然是根据过去某一时刻的数据得到的结果,与实时结果有着本质的区别10.2.3实时查询服务数据实时计算数据实时采集实时查询服务用户查询查询结果《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•可见,流处理系统与传统的数据处理系统有如下不同:–流处理系统处理的是实时的数据,而传统的数据处理系统处理的是预先存储好的静态数据–用户通过流处理系统获取的是实时结果,而通过传统的数据处理系统,获取的是过去某一时刻的结果–流处理系统无需用户主动发出查询,实时查询服务可以主动将实时结果推送给用户10.2.3实时查询服务《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•流计算是针对流数据的实时计算,可以应用在多种场景中,如Web服务、机器翻译、广告投放、自然语言处理、气候模拟预测等•如百度、淘宝等大型网站中,每天都会产生大量流数据,包括用户的搜索内容、用户的浏览记录等数据。采用流计算进行实时数据分析,可以了解每个时刻的流量变化情况,甚至可以分析用户的实时浏览轨迹,从而进行实时个性化内容推荐•但是,并不是每个应用场景都需要用到流计算的。流计算适合于需要处理持续到达的流数据、对数据处理有较高实时性要求的场景10.3流计算的应用《大数据技术原理与应用(第2版)》厦门大学计算机科学系林子雨ziyulin@xmu.edu.cn•传统的业务分析一般采用分布式离线计算的方式,即将数据全部保存起来,然后每隔一定的时间进行离线分析来得到结果。但这样会导致一定的延时,难以保证结果的实时性•随着分析业务对实时性要求的提升,离线分析模式已经不适合用于流数据的分析,也不适用于要求实时响应的互联网应用场景•如淘宝网“双十一”、“双十二”的促销活动,商家需要根据广告效果来即时调整广告,这就需要对广告的受访情况进

1 / 77
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功