【第六章】流计算

流计算处理流程

概述

包括三个阶段:数据实时采集、数据实时计算、实时查询服务
 

数据实时采集

  • 实时性,低延迟与稳定可靠

数据实时计算

实时查询服务

Spark Streaming设计

整合多种输入数据源,实时输入数据流,以时间片进行拆分
  • storm可以实现毫秒级相应
  • spark Streaming秒级批处理

DStream

Spark Streaming工作机制

在Spark Streaming中,会有一个组件Receiver,作为一个长期运行的任务(Task)运行在一个Executor上,每个Receiver都会负责一个DStream输入流(如从文件中读取数据的文件流、套接字流或者从Kafka中读取的一个输入流等)。Receiver组件接收到数据源发来的数据后,会提交给Spark Streaming程序进行处理。处理后的结果,可以交给可视化组件进行可视化展示,也可以写入到HDFS、HBase中。
notion image

程序基本步骤

  1. 创建输入DStream来定义输入源
  1. DStream应用转换操作和输出操作定义流计算
  1. streamingContext.start()接收数据
 

创建SC对象

通过SparkCont()创建SparkContext对象
  • pyspark下默认存在一个sc对象,不用另创立

    基本输入源

    文件流

    textFileStream(’目录’)

    套接字流

    socket

    RDD队列流

    streamingContext.queueStream(queueRDD)
    💡
    range(1,1001)指的是[1,1000]

    高级输入源

    Kafka简介

    高吞吐量,在线实时处理,离线批处理,实现不同类型数据的高效实时交换
    • Broker:Kafka中的服务器
    • Topic:消息的类别
    • Patition:物理分区
    • Producer:消息生产者
    • Consumer:消息消费者
    • Consumer Group:消费者分组

    DStream转换操作

    • checkpoint(目录)检查点

    无状态的转换操作

    只分析当前状态,和之前状态无关
    • map(func)
    • flatMap(func)
    • filter(func)
    • repartition(numPatitions)
    • reduce(func)
    • union()连接
    • countByValue()元素类型为K的DStream上,返回(K,V)
    • reduceByKey(,[num Tasks])
    • join(,[num Tasks])
    • cogroup(otherStream,[num Tasks])

    有状态的转换操作

    和之前状态有关

    滑动窗口转换操作

    • 设定一个滑动窗口的长度(窗口持续时间)
    • 设定窗口的时间间隔(多长时间执行一次)
    • window(windowLength,slidelnterval)
    • countByWindow(windowLength,slidlnterval)返回窗口数
    • reduceByWindow(func,windowLength,slidelnterval)
    • countByValueAndWindow(windowLength,slidelnterval,[num Tasks])每个key出现的频率
    • reduceBykeyAndWindow(func,windowLength,slidelnterval,[numTasks])每个key进行func聚合
    • reduceBykeyAndWindow(func,invFunc,windowLength,slidelnterval,[numTasks])
     
    Prev
    【第五章】DataFrame
    Next
    【第七章】Structured Streaming
    Loading...
    Article List
    一个NotionNext搭建的博客
    数据库系统概论
    大数据原理与应用
    javaWeb应用开发基础教程
    python
    毕业设计
    大数据技术综合应用
    实训-航空数据系统
    java面向对象程序设计
    数据结构
    算法分析与设计
    SPARK
    Python爬虫大数据采集与挖掘
    云计算
    概率论与数理统计
    数字逻辑
    计算机网络
    计算机组成原理
    linux
    操作系统
    人工智能导论
    数据仓库与数据挖掘
    数据可视化
    大数据安全与隐私保护
    c语言
    C++