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 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

Java架构师必须知道的 6 大设计原则

原文:www.cnblogs.com/pengdai/p/9151800.html

673
来自专栏函数式编程语言及工具

FunDA(4)- 数据流内容控制:Stream data element control

    上节我们探讨了通过scalaz-stream-fs2来驱动一套数据处理流程,用fs2的Pipe类型来实现对数据流的逐行操作。本篇讨论准备在上节讨论的基础...

1797
来自专栏精讲JAVA

Java 8 和 Java 9 中并发工具的改变

Java 8 和 Java 9中 concurrent 包有了一些改变, 本文对这些改变做了汇总。

752
来自专栏数据库

httpclient如何快速往数据库里添加测试用例

本人在使用httpclient做接口测试的过程中,使用数据库管理用例,其中存的key-value的形式,由于接口的参数可能比较多,所以一个个用例写起来会比较麻烦...

1679
来自专栏C/C++基础

设计模式 (一)——策略模式(Strategy,行为型)

使用设计模式可以提高代码的可复用性、可扩充性和可维护性。策略模式(Strategy Pattern)属于行为型模式,其做法是将类所需的行为或者算法一个个封装成单...

702
来自专栏简单聊聊Spark

Spark性能调优篇四之使用Kryo进行序列化操作

        接着上一篇文章,今天介绍一下通过使用Kryo这个东东来进一步降低网络IO的传输量和内存的占用率。在介绍Kryo之前,接下来我们先来对比一下默认的...

773
来自专栏包子铺里聊IT

【最火大数据 Framework】五分钟深入 Spark 运行机制

上篇文章,我们简要介绍了 MapReduce 框架的局限和 Spark 横空出世的土壤。今天,我们就来详细介绍 Spark 的内部原理和它强大功能的背后设计。...

34812
来自专栏Jed的技术阶梯

Spark性能调优04-数据倾斜调优

数据倾斜的原理很简单:在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或join等操作。...

1155
来自专栏iKcamp

使用合适的设计模式一步步优化前端代码

作者:晓飞 本文原创,转载请注明作者及出处 在后端语言中,设计模式应用的较为广泛。如Spring中常见的工厂模式、装饰者模式、单例模式、迭代器模式。但...

1875
来自专栏祝威廉

Spark Streaming 1.6 流式状态管理分析

在流式计算中,数据是持续不断来的,有时候我们要对一些数据做跨周期(Duration)的统计,这个时候就不得不维护状态了。而状态管理对Spark 的 RDD模型是...

462

扫码关注云+社区