商业大数据分析许鑫大数据[8]流计算精编版

上传人:ahu****ng1 文档编号:141923691 上传时间:2020-08-14 格式:PPTX 页数:72 大小:2.68MB
返回 下载 相关 举报
商业大数据分析许鑫大数据[8]流计算精编版_第1页
第1页 / 共72页
商业大数据分析许鑫大数据[8]流计算精编版_第2页
第2页 / 共72页
商业大数据分析许鑫大数据[8]流计算精编版_第3页
第3页 / 共72页
商业大数据分析许鑫大数据[8]流计算精编版_第4页
第4页 / 共72页
商业大数据分析许鑫大数据[8]流计算精编版_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《商业大数据分析许鑫大数据[8]流计算精编版》由会员分享,可在线阅读,更多相关《商业大数据分析许鑫大数据[8]流计算精编版(72页珍藏版)》请在金锄头文库上搜索。

1、,E-mail: ,流计算,大数据,Big Data,提纲,8.1 流计算概述 8.2 流计算处理流程 8.3 流计算应用 8.4 流计算开源框架 Storm 8.5 Spark Streaming 8.6 Samza 8.7 Storm、Spark Streaming和Samza的应用场景 8.8 Storm编程实践,8.1流计算概述,8.1.1静态数据和流数据 8.1.2批量计算和实时计算 8.1.3流计算概念 8.1.4流计算与Hadoop 8.1.5流计算框架,很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On-L

2、ine Analytical Processing)分析工具从静态数据中找到对企业有价值的信息,8.1.1 静态数据和流数据,近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的数据密集型应用流数据,即数据以大量、快速、时变的流形式持续到达 实例:PM2.5检测、电子商务网站用户点击流 流数据具有如下特征: 数据快速持续到达,潜在大小也许是无穷无尽的 数据来源众多,格式复杂 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃,要么被归档存储 注重数据的整体价值,不过分关注个别数据 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的数据元素的顺序,8.1.1 静态数据和流数据

3、,对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算和实时计算,8.1.2 批量计算和实时计算,图8-2 数据的两种处理模型,批量计算:充裕时间处理静态数据,如Hadoop 流数据不适合采用批量计算,因为流数据不适合用传统的关系模型建模 流数据必须采用实时计算,响应时间为秒级 数据量少时,不是问题,但是,在大数据时代,数据格式复杂、来源众多、数据量巨大,对实时计算提出了很大的挑战。因此,针对流数据的实时计算流计算,应运而生,流计算:实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息,8.1.3 流计算概念,图8-3 流计算示意图,流计算秉承一个基本理念,即数据的

4、价值随着时间的流逝而降低,如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的处理引擎 对于一个流计算系统来说,它应达到如下需求: 高性能:处理大数据的基本要求,如每秒处理几十万条数据 海量式:支持TB级甚至是PB级的数据规模 实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别 分布式:支持大数据的基本架构,必须能够平滑扩展 易用性:能够快速进行开发和部署 可靠性:能可靠地处理流数据,8.1.3 流计算概念,Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运行MapReduce任务,最后对结果进

5、行汇总输出 MapReduce是专门面向静态数据的批量处理的,内部各种实现机制都为批处理做了高度优化,不适合用于处理持续到达的动态数据 可能会想到一种“变通”的方案来降低批处理的时间延迟将基于MapReduce的批量处理转为小批量处理,将输入数据切成小的片段,每隔一个周期就启动一次MapReduce作业。但这种方式也无法有效处理流数据 切分成小片段,可以降低延迟,但是也增加了附加开销,还要处理片段之间依赖关系 需要改造MapReduce以支持流式处理,8.1.4 流计算与Hadoop,结论:鱼和熊掌不可兼得,Hadoop擅长批处理,不适合流计算,当前业界诞生了许多专门的流数据实时计算系统来满足

6、各自需求 目前有三类常见的流计算框架和平台:商业级的流计算平台、开源流计算框架、公司为支持自身业务开发的流计算框架 商业级:IBM InfoSphere Streams和IBM StreamBase 较为常见的是开源流计算框架,代表如下: Twitter Storm:免费、开源的分布式实时计算系统,可简单、高效、可靠地处理大量的流数据 Yahoo! S4(Simple Scalable Streaming System):开源流计算平台,是通用的、分布式的、可扩展的、分区容错的、可插拔的流式系统 公司为支持自身业务开发的流计算框架: Facebook Puma Dstream(百度) 银河流数

7、据处理平台(淘宝),8.1.5 流计算框架,8.2流计算处理流程,8.2.1概述 8.2.2数据实时采集 8.2.3数据实时计算 8.2.4实时查询服务,传统的数据处理流程,需要先采集数据并存储在关系数据库等数据管理系统中,之后由用户通过查询操作和数据管理系统进行交互 传统的数据处理流程隐含了两个前提: 存储的数据是旧的。存储的静态数据是过去某一时刻的快照,这些数据在查询时可能已不具备时效性了 需要用户主动发出查询来获取结果,8.2.1 数据处理流程,传统的数据处理流程示意图,流计算的处理流程一般包含三个阶段:数据实时采集、数据实时计算、实时查询服务,8.2.1 数据处理流程,流计算处理流程示

8、意图,数据实时采集阶段通常采集多个数据源的海量数据,需要保证实时性、低延迟与稳定可靠 以日志数据为例,由于分布式集群的广泛应用,数据分散存储在不同的机器上,因此需要实时汇总来自不同机器上的日志数据 目前有许多互联网公司发布的开源分布式日志采集系统均可满足每秒数百MB的数据采集和传输需求,如: Facebook的Scribe LinkedIn的Kafka 淘宝的Time Tunnel 基于Hadoop的Chukwa和Flume,8.2.2 数据实时采集,数据采集系统的基本架构一般有以下三个部分: Agent:主动采集数据,并把数据推送到Collector部分 Collector:接收多个Agen

9、t的数据,并实现有序、可靠、高性能的转发 Store:存储Collector转发过来的数据(对于流计算不存储数据),8.2.2 数据实时采集,数据采集系统基本架构,数据实时计算阶段对采集的数据进行实时的分析和计算,并反馈实时结果 经流处理系统处理后的数据,可视情况进行存储,以便之后再进行分析计算。在时效性要求较高的场景中,处理之后的数据也可以直接丢弃,8.2.3 数据实时计算,数据实时计算流程,实时查询服务:经由流计算框架得出的结果可供用户进行实时查询、展示或储存 传统的数据处理流程,用户需要主动发出查询才能获得想要的结果。而在流处理流程中,实时查询服务可以不断更新结果,并将用户所需的结果实时

10、推送给用户 虽然通过对传统的数据处理系统进行定时查询,也可以实现不断地更新结果和结果推送,但通过这样的方式获取的结果,仍然是根据过去某一时刻的数据得到的结果,与实时结果有着本质的区别,8.2.3 实时查询服务,可见,流处理系统与传统的数据处理系统有如下不同: 流处理系统处理的是实时的数据,而传统的数据处理系统处理的是预先存储好的静态数据 用户通过流处理系统获取的是实时结果,而通过传统的数据处理系统,获取的是过去某一时刻的结果 流处理系统无需用户主动发出查询,实时查询服务可以主动将实时结果推送给用户,8.2.3 实时查询服务,流计算是针对流数据的实时计算,可以应用在多种场景中,如Web服务、机器

11、翻译、广告投放、自然语言处理、气候模拟预测等 如百度、淘宝等大型网站中,每天都会产生大量流数据,包括用户的搜索内容、用户的浏览记录等数据。采用流计算进行实时数据分析,可以了解每个时刻的流量变化情况,甚至可以分析用户的实时浏览轨迹,从而进行实时个性化内容推荐 但是,并不是每个应用场景都需要用到流计算的。流计算适合于需要处理持续到达的流数据、对数据处理有较高实时性要求的场景,8.3 流计算的应用,传统的业务分析一般采用分布式离线计算的方式,即将数据全部保存起来,然后每隔一定的时间进行离线分析来得到结果。但这样会导致一定的延时,难以保证结果的实时性 随着分析业务对实时性要求的提升,离线分析模式已经不

12、适合用于流数据的分析,也不适用于要求实时响应的互联网应用场景 如淘宝网“双十一”、“双十二”的促销活动,商家需要根据广告效果来即时调整广告,这就需要对广告的受访情况进行分析。但以往采用分布式离线分析,需要几小时甚至一天的延时才能得到分析结果。而促销活动只持续一天,因此,隔天才能得到的分析结果便失去了价值 虽然分布式离线分析带来的小时级的分析延时可以满足大部分商家的需求,但随着实时性要求越来越高,如何实现秒级别的实时分析响应成为业务分析的一大挑战,8.3.1 应用场景1: 实时分析,针对流数据,“量子恒道”开发了海量数据实时流计算框架Super Mario。通过该框架,量子恒道可处理每天TB级的

13、实时流数据,并且从用户发出请求到数据展示,整个延时控制在2-3秒内,达到了实时性的要求,8.3.1 应用场景1: 实时分析,Super Mario处理流程,流计算不仅为互联网带来改变,也能改变我们的生活 如提供导航路线,一般的导航路线并没有考虑实时的交通状况,即便在计算路线时有考虑交通状况,往往也只是使用了以往的交通状况数据。要达到根据实时交通状态进行导航的效果,就需要获取海量的实时交通数据并进行实时分析 借助于流计算的实时特性,不仅可以根据交通情况制定路线,而且在行驶过程中,也可以根据交通情况的变化实时更新路线,始终为用户提供最佳的行驶路线,8.3.1 应用场景2: 实时交通,8.4.1 S

14、torm简介 8.4.2 Storm的特点 8.4.3 Storm设计思想 8.4.4 Storm框架设计,8.4 开源流计算框架Storm,以前只有政府机构和金融机构能够通过昂贵的定制系统来满足流数据实时分析计算需求 早期对于流计算的研究多数是基于对传统数据库处理的流式化,即实时数据库,很少研究流计算框架 Yahoo! S4和Twitter Storm的开源,改变了这个情况 在流数据处理上比MapReduce更有优势 批处理系统关注吞吐率,流处理系统关注延时 Yahoo! S4和Twitter Storm改变了开发实时应用的方式 以前既要关注处理逻辑,还要解决实时数据获取、传输、存储 现在可

15、以快速低成本搭建起实时流处理系统,8.4 开源流计算框架Storm,Twitter Storm是一个免费、开源的分布式实时计算系统,Storm对于实时计算的意义类似于Hadoop对于批处理的意义,Storm可以简单、高效、可靠地处理流数据,并支持多种编程语言 Storm框架可以方便地与数据库系统进行整合,从而开发出强大的实时计算系统,8.4.1 Storm简介,Twitter是全球访问量最大的社交网站之一,Twitter开发Storm流处理框架也是为了应对其不断增长的流数据实时处理需求,8.4.1 Storm简介,Twitter的分层数据处理架构,8.4.2 Storm的特点,Storm可用于

16、许多领域中,如实时分析、在线机器学习、持续计算、远程RPC、数据提取加载转换等 Storm具有以下主要特点: 整合性:Storm可方便地与队列系统和数据库系统进行整合 简易的API:Storm的API在使用上即简单又方便 可扩展性:Storm的并行特性使其可以运行在分布式集群中 容错性:Storm可自动进行故障节点的重启、任务的重新分配 可靠的消息处理:Storm保证每个消息都能完整处理 支持各种编程语言:Storm支持使用各种编程语言来定义任务 快速部署:Storm可以快速进行部署和使用 免费、开源:Storm是一款开源框架,可以免费使用,8.4.3 Storm设计思想,Storm主要术语包括Streams、Spouts、Bolts、Topology和Stream Groupings Streams:Storm将流数据Stream描述成一个无限的Tuple序列,这些Tuple序列会以分布式的方式并行地创建和处理,每个tuple是一堆值,每个值有一个名字,并且每个值可以是任何类型 Tuple本来应该是一个Key-Value的Map,由于各个组件间传递的tuple的字段名

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号