第8章流计算 《大数据技术基础》
《大数据技术基础》 第8章 流计算
提纲 8.1流计算概述 82流计算处理流程 83流计算应用 84流计算开源框架- Storm
提纲 8.1 流计算概述 8.2 流计算处理流程 8.3 流计算应用 8.4 流计算开源框架 - Storm
81流计算概述 8.1.1 静态数据和流数据 8.1.2 批量计算和实时计算 8.1.3 流计算概念 8.14 流计算与 Hadoop 8.1.5 流计算框架
8.1 流计算概述 • 8.1.1 静态数据和流数据 • 8.1.2 批量计算和实时计算 • 8.1.3 流计算概念 • 8.1.4 流计算与Hadoop • 8.1.5 流计算框架
81.1静态数据和流数据 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量 历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On- Line analytical Processing)分析工具从静态数据中找到对企业有价值 的信息 数据仓库监视、运行和维护工具 外部数据 数据挖掘 前端应用 元数据 RRA ig eR 抽取、转换 匚报表 加载EIL) OLTP系统 服务 分析工具 文档 其中应用 数据集市 OLAP服务器 数据源 数据有储和管理 分析和挖掘引擎i 应用
• 很多企业为了支持决策分析而构建的数据仓库系统,其中存放的大量 历史数据就是静态数据。技术人员可以利用数据挖掘和OLAP(On‐ Line Analytical Processing)分析工具从静态数据中找到对企业有价值 的信息 8.1.1 静态数据和流数据
81.1静态数据和流数据 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的 数据密集型应用—一流数据,即数据以大量、快速、时变的流形式持 续到达 流数据具有如下特征 数据快速持续到达,潜在大小也许是无穷无尽的 数据来源众多,格式复杂 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃, 要么被归档存储 注重数据的整体价值,不过分关注个别数据 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的 数据元素的顺序
• 近年来,在Web应用、网络监控、传感监测等领域,兴起了一种新的 数据密集型应用——流数据,即数据以大量、快速、时变的流形式持 续到达 • 流数据具有如下特征: – 数据快速持续到达,潜在大小也许是无穷无尽的 – 数据来源众多,格式复杂 – 数据量大,但是不十分关注存储,一旦经过处理,要么被丢弃, 要么被归档存储 – 注重数据的整体价值,不过分关注个别数据 – 数据顺序颠倒,或者不完整,系统无法控制将要处理的新到达的 数据元素的顺序 8.1.1 静态数据和流数据
81.2批量计算和实时计算 对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量 计算和实时计算 处理逻辑 流数据 (动态数据) 静态数据 处理 逻辑 价值 丢弃 价值 批量计算 实时计算 数据的两种处理模型
• 对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量 计算和实时计算 8.1.2 批量计算和实时计算 数据的两种处理模型
81.2批量计算和实时计算 批量计算以“静态数据”为对象,可在充裕的时间内对海量数据进行 批量处理,计算得到有价值的信息。 Hadoop是典型的批处理模型, 由HDFS和 HBase存放大量的静态数据,由 MapReduce负责对海量数 据执行批量计算 流数据须釆用实时计算。实时计算最重要的一个需求是能够实时得到 计算结果,一般要求响应时间为秒级。当只需要处理少量数据时,实 时计算并不是问题;但是,在大数据时代,数据格式复杂、来源众多、 数据量巨大,对实时计算提出了很大的挑战。因此,针对流数据的实 时计算—流计算,应运而生
• 批量计算以“静态数据”为对象,可在充裕的时间内对海量数据进行 批量处理,计算得到有价值的信息。Hadoop是典型的批处理模型, 由HDFS和HBase存放大量的静态数据,由MapReduce负责对海量数 据执行批量计算 • 流数据须采用实时计算。实时计算最重要的一个需求是能够实时得到 计算结果,一般要求响应时间为秒级。当只需要处理少量数据时,实 时计算并不是问题;但是,在大数据时代,数据格式复杂、来源众多、 数据量巨大,对实时计算提出了很大的挑战。因此,针对流数据的实 时计算——流计算,应运而生 8.1.2 批量计算和实时计算
813流计算概念 流计算:实时获取来自不同数据源的海量数据,经过实时 分析处理,获得有价值的信息 描 数据采集实时分析处理》结果反馈 流计算示意图
• 流计算:实时获取来自不同数据源的海量数据,经过实时 分析处理,获得有价值的信息 8.1.3 流计算概念 流计算示意图
813流计算概念 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低。 因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量 处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的 处理引擎 对于一个流计算系统来说,它应达到如下需求: 髙性能:处理大数据的基本要求,如每秒处理几十万条数据 一海量式:支持TB级甚至是PB级的数据规模 实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别 分布式:支持大数据的基本架构,必须能够平滑扩展 易用性:能够快速进行开发和部署 可靠性:能可靠地处理流数据
• 流计算秉承一个基本理念,即数据的价值随着时间的流逝而降低。 因此,当事件出现时就应该立即进行处理,而不是缓存起来进行批量 处理。为了及时处理流数据,就需要一个低延迟、可扩展、高可靠的 处理引擎 • 对于一个流计算系统来说,它应达到如下需求: – 高性能:处理大数据的基本要求,如每秒处理几十万条数据 – 海量式:支持TB级甚至是PB级的数据规模 – 实时性:保证较低的延迟时间,达到秒级别,甚至是毫秒级别 – 分布式:支持大数据的基本架构,必须能够平滑扩展 – 易用性:能够快速进行开发和部署 – 可靠性:能可靠地处理流数据 8.1.3 流计算概念
814流计算与 Hadoop Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运 行 MapReduce任务,最后对结果进行汇总输出 MapReduce是专门面向静态数据的批量处理的,内部各种实现机制都 为批处理做了高度优化,不适合用于处理持续到达的动态数据 我们可能会想到一种“变通”的方案来降低批处理的时间延迟一一将 基于 MapReduce的批量处理转为小批量处理,将输入数据切成小的片 段,每隔一个周期就启动一次 MapReduce作业。但这种方式也无法有 效处理流数据
• Hadoop设计的初衷是面向大规模数据的批量处理,每台机器并行运 行MapReduce任务,最后对结果进行汇总输出 • MapReduce是专门面向静态数据的批量处理的,内部各种实现机制都 为批处理做了高度优化,不适合用于处理持续到达的动态数据 • 我们可能会想到一种“变通”的方案来降低批处理的时间延迟——将 基于MapReduce的批量处理转为小批量处理,将输入数据切成小的片 段,每隔一个周期就启动一次MapReduce作业。但这种方式也无法有 效处理流数据 8.1.4 流计算与Hadoop