目录

  • 1 课程资料
    • 1.1 课程标准
    • 1.2 教学日历
    • 1.3 教案
  • 2 大数据时代
    • 2.1 大数据概述
    • 2.2 大数据的4V特征和关键技术
    • 2.3 大数据与云计算、物联网的关系
    • 2.4 直播录屏
    • 2.5 章节测试
  • 3 大数据处理架构Hadoop
    • 3.1 平台搭建(VM+UbuntuKylin16.04+Hadoop伪分布式+Hbase伪分布式)
    • 3.2 Hadoop简介
    • 3.3 Hadoop的版本
    • 3.4 Hadoop项目结构
    • 3.5 Hadoop安装与配置
    • 3.6 Hadoop伪分布式集群搭建
    • 3.7 章节测试
  • 4 分布式文件系统HDFS简介
    • 4.1 分布式文件系统HDFS简介
      • 4.1.1 HDFS的基本操作实验
    • 4.2 HDFS的基本概念
    • 4.3 HDFS的体系结构
    • 4.4 HDFS的存储策略
    • 4.5 HDFS的数据读写过程
      • 4.5.1 第一关:HDFS Java API编程 ——文件读写
    • 4.6 第2关:HDFS-JAVA接口之上传文件
    • 4.7 章节测试
  • 5 分布式数据HBASE
    • 5.1 HBASE简介
    • 5.2 HBASE数据模型
    • 5.3 HBASE的实现原理
    • 5.4 HBASE运行机制
    • 5.5 HBASE的应用方案。
    • 5.6 章节测试
    • 5.7 Hbase数据库的安装
  • 6 MapReduce概述
    • 6.1 分布式并行编程方式
    • 6.2 MapReduce模型
    • 6.3 MapReduce体系结构
    • 6.4 MapReduce的工作流程
    • 6.5 shuffle操作的过程原理
    • 6.6 章节测试
  • 7 Spark简介
    • 7.1 ​ Spark简介
    • 7.2 Spark与Hadoop的对比
    • 7.3 Spark运行架构基本概念和架构设计
    • 7.4 Spark运行基本流程
    • 7.5 RDD设计与运行原理
    • 7.6 Spark应用实例
    • 7.7 章节测试
  • 8 流计算
    • 8.1 流计算概念及框架
    • 8.2 流计算处理流程及应用
    • 8.3 章节测试
  • 9 大数据的应用
    • 9.1 大数据的应用领域
    • 9.2 大数据助力精准防疫
    • 9.3 章节测试
  • 10 拓展阅读
    • 10.1 区块链
    • 10.2 COVID-19疫情的数据科学实践之Python疫情数据爬取
    • 10.3 大数据技术工具
      • 10.3.1 交通大数据案例
  • 11 主题讨论
    • 11.1 主题讨论
流计算处理流程及应用



这一讲介绍流计算处理流程和应用。主要内容包括数据处理流程和流数据应用。


首先介绍数据处理流程

(1)先介绍:传统数据处理流程。传统的数据处理流程,需要先采集数据并存储在关系数据库中,之后由用户通过查询操作和数据管理系统进行交互。

传统的数据处理流程隐含了两个前提:(1)是存储的数据是旧的。存储的静态数据是过去某一时刻的快照,这些数据在查询时可能已不具备时效性。(2)是需要用户主动发出查询来获取结果。

(2)接下来介绍:流数据处理流程。流计算的处理流程一般包含三个阶段:

1)是数据实时采集,2)是数据实时计算,3)是实时查询服务。

下面分别介绍流数据处理的三个阶段。

第一步:流计算实时数据采集

数据实时采集阶段通常采集多个数据源的海量数据,需要保证实时性、低延迟与稳定可靠。以日志数据为例,由于分布式集群的广泛应用,数据分散存储在不同的机器上,因此需要实时汇总来自不同机器上的日志数据。目前有许多互联网公司发布的开源分布式日志采集系统均可满足每秒数百MB的数据采集和传输需求,如:

Facebook的Scribe

LinkedIn(领英公司)的Kafka

淘宝的Time Tunnel

基于Hadoop的Chukwa(楚克瓦)和Flume

数据采集系统的基本架构一般有以下三个部分:

一是Agent(代理):主动采集数据,并把数据推送到Collector部分。

二是Collector(收集器):接收多个Agent的数据,并实现有序、可靠、高性能的转发

三是Store(存储):存储Collector(收集器)转发过来的数据


第二步:流数据实时计算

数据实时计算阶段对采集的数据进行实时的分析和计算,并反馈实时结果。经流处理系统处理后的数据,可视情况进行存储,以便之后再进行分析计算。在时效性要求较高的场景中,处理之后的数据也可以直接丢弃

第三步:数据实时查询服务

实时查询服务:是指经由流计算框架得出的结果可供用户进行实时查询、展示或储存。

传统的数据处理流程,用户需要主动发出查询才能获得想要的结果。而在流处理流程中,实时查询服务可以不断更新结果,并将用户所需的结果实时推送给用户。

虽然通过对传统的数据处理系统进行定时查询,也可以实现不断地更新结果和结果推送,但通过这样的方式获取的结果,仍然是根据过去某一时刻的数据得到的结果,与实时结果有着本质的区别。

可见,流处理系统与传统的数据处理系统有如下不同:

(1)是流处理系统处理的是实时的数据,而传统的数据处理系统处理的是预先存储好的静态数据。

(2)是用户通过流处理系统获取的是实时结果,而通过传统的数据处理系统,获取的是过去某一时刻的结果。

(3)是流处理系统无需用户主动发出查询,实时查询服务可以主动将实时结果推送给用户。


5、最后介绍:流计算应用

流计算是针对流数据的实时计算,可以应用在多种场景中,如Web服务、机器翻译、广告投放、自然语言处理、气候模拟预测等

如百度、淘宝等大型网站中,每天都会产生大量流数据,包括用户的搜索内容、用户的浏览记录等数据。采用流计算进行实时数据分析,可以了解每个时刻的流量变化情况,甚至可以分析用户的实时浏览轨迹,从而进行实时个性化内容推荐。

但并不是每个应用场景都需要用到流计算的。流计算适合于需要处理持续到达的流数据、对数据处理有较高实时性要求的场景。

(1)应用场景1: 实时分析

传统的业务分析一般采用分布式离线计算的方式,将数据全部保存起来,然后每隔一定的时间进行离线分析来得到结果。但这样会导致一定的延时,难以保证结果的实时性。

随着分析业务对实时性要求的提升,离线分析模式已经不适合用于流数据的分析,也不适用于要求实时响应的互联网应用场景。

如淘宝网“双十一”、“双十二”的促销活动,商家需要根据广告效果来即时调整广告,这就需要对广告的受访情况进行分析。但以往采用分布式离线分析,需要几小时甚至一天的延时才能得到分析结果。而促销活动只持续一天,因此,隔天才能得到的分析结果便失去了价值。

虽然分布式离线分析带来的小时级的分析延时可以满足大部分商家的需求,但随着实时性要求越来越高,如何实现秒级别的实时分析响应,成为业务分析的一大挑战。

针对流数据,“量子恒道”开发了海量数据实时流计算框架Super Mario(马里奥)。通过该框架,量子恒道可处理每天TB级的实时流数据,并且从用户发出请求到数据展示,整个延时控制在2-3秒内,达到了实时性的要求。

(2) 应用场景2: 实时交通

流计算不仅为互联网带来改变,也能改变我们的生活。

如提供导航路线,一般的导航路线并没有考虑实时的交通状况,即便在计算路线时有考虑交通状况,往往也只是使用了以往的交通状况数据。要达到根据实时交通状态进行导航的效果,就需要获取海量的实时交通数据并进行实时分析

借助于流计算的实时特性,不仅可以根据交通情况制定路线,而且在行驶过程中,也可以根据交通情况的变化实时更新路线,始终为用户提供最佳的行驶路线。


这一讲就介绍到这,谢谢!