Spark2.x学习笔记:18、Spark Streaming程序解读

《Spark2.x学习笔记》

18、Spark Streaming程序解读

18.1 Spark Streaming原理

Spark Streaming将流式计算转化为一批批很小的、确定的批处理作业(micro-batch)。以数秒为单位将数据流切分成离散的作业。每批数据看做RDD,可以使用RDD相关操作进行处理。最后结果以RDD为单位返回(写入HDFS或其他系统)。

18.2 DStream

DStream是连续数据的离散化表示,DStream中每个离散片段都是一个RDD,DStream可以变换成另一个DStream。

18.3 Spark Streaming程序模版

编写Spark Streaming程序流程如下:

  1. 流式上下文
  2. 流式数据输入
  3. 流式转换
  4. 流式数据输出
  5. 启动流式处理

比如Spark Streaming的样例程序NetworkWordCount可以非常明显地看出上面流程结构。

  //1. 流式上下文
  val sparkConf = new SparkConf().setAppName("NetworkWordCount")
  val ssc = new StreamingContext(sparkConf, Seconds(1))

  //2.流式数据输入
  val lines = ssc.socketTextStream("localhost", 9999)

  //3.流式转换    
  val words = lines.flatMap(_.split(" "))
  val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _)

  //4.流式输出
  wordCounts.print()

  //5.启动流式处理
  ssc.start()
  ssc.awaitTermination()

18.4 流式数据输入

(1)内置数据源(StreamingContext)

  • socketStream/rawSocketStream/socketTextStream
  • fileStream/textFileStream
  • receiverStream

(2)外部数据源

  • KafkaUtils:createStream/createDirectStream
  • FlumeUtils:createStream

18.5 流式转换

(1)一般的转换

  • map/flatMap/filter/reduce
  • groupByKey/reduceByKey/sortByKey,join
  • count

(2)特有转换

  • transform
  • window
  • mapWithState

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CaiRui

LVS调度算法

内核中的连接调度算法 IPVS在内核中的负载均衡调度是以连接为粒度的。在HTTP协议(非持久中),每个对象从WEB服务器上获取都需要建立一个TCP连接,同一用户...

35210
来自专栏智能计算时代

Apache Hive走向内存计算,性能提升26倍

Apache Hive 2.1已于几个月前发布,它引入了内存计算,这使得Hive计算性能得到极大提升,这将会影响SQL On Hadoop目前的竞争局面。据测试...

3365
来自专栏美团技术团队

顶会论文:纠删码存储系统中的投机性部分写技术

本文已被USENIX'17年度技术大会录用,此处为中文简译版。 阅读英文论文完整版请点击:Speculative Partial Writes in Erasu...

46410
来自专栏行业动态

集装箱竹地板_有哪些特点-鸿运木业

集装箱竹木复合地板,该复合地板的中间层为纵向竹帘Ⅴ,从上层到中间层以及从下层到中间层分别依次设有竹席或杨木面板、杨木短中板、纵向竹帘Ⅰ、桉木或杨木板、纵向竹帘Ⅱ...

683
来自专栏大数据

带有Apache Spark的Lambda架构

市场上的许多玩家已经建立了成功的MapReduce工作流程来每天处理以TB计的历史数据。但是谁愿意等待24小时才能获得最新的分析结果?这篇博文将向您介绍旨在利用...

2534
来自专栏精讲JAVA

流计算框架 Flink 与 Storm 的性能对比

1. 背景 Apache Flink 和 Apache Storm 是当前业界广泛使用的两个分布式实时计算框架。其中 Apache Storm(以下简称“Sto...

2859
来自专栏小樱的经验随笔

2018年高教社杯全国大学生数学建模竞赛B题解题思路

图1是一个智能加工系统的示意图,由8台计算机数控机床(Computer Number Controller,CNC)、1辆轨道式自动引导车(Rail Guide...

2444
来自专栏Android相关

计算机组成

计算机完成的任务是一条一条指令完成的,而指令的执行在处理器中。而外部的输入的信息经过处理器后通过计算机表现。

523
来自专栏linux驱动个人学习

GPU与CPU的区别

1263
来自专栏平凡文摘

流计算框架 Flink 与 Storm 的性能对比

1683

扫码关注云+社区