💥

BigData7:Spark Streaming

Created
Nov 1, 2021 02:36 PM
Describe
23
Link
Tags
Spark

1. 概念

  • 时间片(秒级,通常0.5秒~2秒之间)为单位进行拆分,类似批处理的方式处理每个时间片数据。
  • Spark Streaming输入数据按照时间片分成一段一段,每一段数据转换为Spark中RDD,这些分段就是DStream。最终转变为相应的RDD的操作。
 
notion image
 

2. DStream操作示意图

notion image

2.1 DStream无状态转换操作

  • map()
  • flatMap()
  • filter()
  • repartition(numPartitions)
  • count()
  • reduce(func)
  • countByValue()
  • reduceByKey(func,[numTasks])
  • join(othreStreaam,[numTasks])
  • cogroup()
  • transform()

2.2 DStream有状态转换操作

  1. 滑动窗口转换操作
      • 窗口时间宽度
      • 滑动时间宽度
  1. updateStateByKey操作

2.3 Dstream输出

  • Dstream输出到文本
  • Dstream写入到数据库

3. Spark Straming VS Storm

  • Spark Straming采用小批量处理可以同时兼容批量和实时数据处理的逻辑和算法,方便需要历史数据和实时数据联合分析的特定应用场景。
  • Strom可以实现毫秒表响应
 

4. Spark Straming工作机制

notion image
 

5. 基础步骤:

  1. 定义输入源
  1. 定义流计算
  1. 开始接收数据和处理流程
  1. 等待处理结束
  1. 手动结束流计算进程
 
创建StreamingContext对象