提纲 81流计算概述 82流计算处理流程 83流计算应用 84流计算开源框架- Storm 8.5 Spark Streaming 8. 6 Samza 87Stom、 Spark Streaming和 Samza的应用场景 88Stom编程实践 本PPT是如下教材的配套讲义: 21世纪高等教育计算机规划教材 《大数据技术原理与应用 概念、存储、处理、分析与应用》 (2015年8月第1版) 厦门大学林子雨编著,人民邮电出版社 SBN:978-7115392879 欢迎访问《大数据技术原理与应用》教材官方网站: http:/dblab.xmu.edu.cn/post/bigdata 欢迎访问“中国高校大数据课程公共服务平台”旗下 子栏目“大数据课程学生服务站”,为学生学习大数 据课程提供全方位、一站式免费服务 http://dblab.xmu.edu.cn/post/4331/ 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 xmu. edu. cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 提纲 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编程实践 本PPT是如下教材的配套讲义: 21世纪高等教育计算机规划教材 《大数据技术原理与应用 ——概念、存储、处理、分析与应用》 (2015年8月第1版) 厦门大学 林子雨 编著,人民邮电出版社 ISBN:978-7-115-39287-9 欢迎访问《大数据技术原理与应用》教材官方网站: http://dblab.xmu.edu.cn/post/bigdata 欢迎访问“中国高校大数据课程公共服务平台”旗下 子栏目“大数据课程学生服务站”,为学生学习大数 据课程提供全方位、一站式免费服务: http://dblab.xmu.edu.cn/post/4331/
●8.1流计算概述 ·8.1.1静态数据和流数据 8.12批量计算和实时计算 8.1.3流计算概念 8.14流计算与 Hadoop 8.1.5流计算框架 大数据技术原理与应用》 厦门大学计算机科学系 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 8.1 流计算概述 • 8.1.1 静态数据和流数据 • 8.1.2 批量计算和实时计算 • 8.1.3 流计算概念 • 8.1.4 流计算与Hadoop • 8.1.5 流计算框架
811静态数据和流数据 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量 历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On Line Analytical Processing)分析工具从静态数据中找到对企业有价 值的信息 数据仓库监视、运行和维护工具 外部数据 数据挖掘 前端应用 元教据 数据仓库 数据挖掘系统 抽取、转换 报表 加载ETL OLTP系统 服务 分析工具 查询工具 i 文档 二其中应用 数据集市 OLAP服务器 数据源 数据存储和管理 分析和挖掘引擎 应用 大数据技术原理与应用》 厦门大学计算机科学系 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量 历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(OnLine Analytical Processing)分析工具从静态数据中找到对企业有价 值的信息 8.1.1 静态数据和流数据
811静态数据和流数据 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新 的数据密集型应用——流数据,即数据以大量、快速、时变的流形式 持续到达 实例:PM2.5检测、电子商务网站用户点击流 流数据具有如下特征 数据快速持续到达,潜在大小也许是无穷无尽的 数据来源众多,格式复杂 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃, 要么被归档存储 注重数据的整体价值,不过分关注个别数据 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的 数据元素的顺序 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新 的数据密集型应用——流数据,即数据以大量、快速、时变的流形式 持续到达 • 实例:PM2.5检测、电子商务网站用户点击流 • 流数据具有如下特征: – 数据快速持续到达,潜在大小也许是无穷无尽的 – 数据来源众多,格式复杂 – 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃, 要么被归档存储 – 注重数据的整体价值,不过分关注个别数据 – 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的 数据元素的顺序 8.1.1 静态数据和流数据
812批量计算和实时计算 对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量 计算和实时计算 批量计算:充裕时间处理静态数据, 处理逻辑 流数据 如 Hadoop (动态数据) 流数据不适合采用批量计算,因为流 数据不适合用传统的关系模型建模 流数据必须采用实时计算,响应时间 静态数据 处理 为秒级 逻辑 价值 数据量少时,不是问题,但是,在大 数据时代,数据格式复杂、来源众多 数据量巨大,对实时计算提出了很 丢弃 大的挑战。因此,针对流数据的实时 价值 计算—流计算,应运而生 批量计算 实时计算 图8-2数据的两种处理模型 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量 计算和实时计算 8.1.2 批量计算和实时计算 图8-2 数据的两种处理模型 •批量计算:充裕时间处理静态数据, 如Hadoop •流数据不适合采用批量计算,因为流 数据不适合用传统的关系模型建模 •流数据必须采用实时计算,响应时间 为秒级 •数据量少时,不是问题,但是,在大 数据时代,数据格式复杂、来源众多 、数据量巨大,对实时计算提出了很 大的挑战。因此,针对流数据的实时 计算——流计算,应运而生
●8.13流计算概念 ·流计算:实时获取来自不同数据源的海量数据,经过实时 分析处理,获得有价值的信息 : 数据采 实时分析处理》结果反馈 图8-3流计算示意图 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 流计算:实时获取来自不同数据源的海量数据,经过实时 分析处理,获得有价值的信息 8.1.3 流计算概念 图8-3 流计算示意图 数据采集 实时分析处理 结果反馈
●8.13流计算概念 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低 如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓 存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可 扩展、高可靠的处理引擎 对于一个流计算系统来说,它应达到如下需求 高性能:处理大数据的基本要求,如每秒处理几十万条数据 海量式:支持TB级甚至是PB级的数据规模 实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别 分布式:支持大数据的基本架构,必须能够平滑扩展 易用性:能够快速进行开发和部署 可靠性:能可靠地处理流数据 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低, 如用户点击流。因此,当事件出现时就应该立即进行处理,而不是缓 存起来进行批量处理。为了及时处理流数据,就需要一个低延迟、可 扩展、高可靠的处理引擎 • 对于一个流计算系统来说,它应达到如下需求: – 高性能:处理大数据的基本要求,如每秒处理几十万条数据 – 海量式:支持TB级甚至是PB级的数据规模 – 实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别 – 分布式:支持大数据的基本架构,必须能够平滑扩展 – 易用性:能够快速进行开发和部署 – 可靠性:能可靠地处理流数据 8.1.3 流计算概念
814流计算与Hado0p Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运 行 MapReduce任务,最后对结果进行汇总输出 · MapReduce是专门面向静态数据的批量处理的,内部各种实现机制 都为批处理做了高度优化,不适合用于处理持续到达的动态数据 ·可能会想到一种“变通”的方案来降低批处理的时间延迟——将基于 MapReduce的批量处理转为小批量处理,将输入数据切成小的片段 ,每隔一个周期就启动一次 MapReduce作业。但这种方式也无法有 效处理流数据 切分成小片段,可以降低延迟,但是也增加了附加开销,还要处 理片段之间依赖关系 需要改造 MapReduce以支持流式处理 结论:鱼和熊掌不可兼得, Hadoop擅长批处理,不适合流计算 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运 行MapReduce任务,最后对结果进行汇总输出 • MapReduce是专门面向静态数据的批量处理的,内部各种实现机制 都为批处理做了高度优化,不适合用于处理持续到达的动态数据 • 可能会想到一种“变通”的方案来降低批处理的时间延迟——将基于 MapReduce的批量处理转为小批量处理,将输入数据切成小的片段 ,每隔一个周期就启动一次MapReduce作业。但这种方式也无法有 效处理流数据 – 切分成小片段,可以降低延迟,但是也增加了附加开销,还要处 理片段之间依赖关系 – 需要改造MapReduce以支持流式处理 8.1.4 流计算与Hadoop 结论:鱼和熊掌不可兼得,Hadoop擅长批处理,不适合流计算
815流计算框架 当前业界诞生了许多专门的流数据实时计算系统来满足各自需求 目前有三类常见的流计算框架和平台:商业级的流计算平台、开源流 计算框架、公司为支持自身业务开发的流计算框架 商业级:| BM Info Sphere Streams和 BM StreamBase 较为常见的是开源流计算框架,代表如下: - Twitter storm:免费、开源的分布式实时计算系统,可简单、高 效、可靠地处理大量的流数据 Yahoo!s4( Simple scalable Streaming System):开源流计算 平台,是通用的、分布式的、可扩展的、分区容错的、可插拔的 流式系统 ·公司为支持自身业务开发的流计算框架: Facebook puma Dstream(百度) 银河流数据处理平台(淘宝) 大数据技术原理与应用》 厦门大学计算机科学系 林子雨 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn • 当前业界诞生了许多专门的流数据实时计算系统来满足各自需求 • 目前有三类常见的流计算框架和平台:商业级的流计算平台、开源流 计算框架、公司为支持自身业务开发的流计算框架 • 商业级:IBM InfoSphere Streams和IBM StreamBase • 较为常见的是开源流计算框架,代表如下: – Twitter Storm:免费、开源的分布式实时计算系统,可简单、高 效、可靠地处理大量的流数据 – Yahoo! S4(Simple Scalable Streaming System):开源流计算 平台,是通用的、分布式的、可扩展的、分区容错的、可插拔的 流式系统 • 公司为支持自身业务开发的流计算框架: – Facebook Puma – Dstream(百度) – 银河流数据处理平台(淘宝) 8.1.5 流计算框架
●8:2流计算处理流程 821概述 822数据实时采集 823数据实时计算 ·8.2.4 实时查询服务 大数据技术原理与应用》 厦门大学计算机科学系 lin@xmu.edu.cn
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@xmu.edu.cn 8.2 流计算处理流程 • 8.2.1 概述 • 8.2.2 数据实时采集 • 8.2.3 数据实时计算 • 8.2.4 实时查询服务