Spark Steaming

  • 一、流计算概述
  • 二、Spark Streaming
  • 三、DStream
  • 四、文件流操作
  • 五、套接字流
  • 参考


streampark 支持spark吗 spark dstream_scala

一、流计算概述

静态数据、流数据

streampark 支持spark吗 spark dstream_streampark 支持spark吗_02

特点

实时处理、主动推送

大量、快速、时变、持续到达

低延迟、可扩展、高可靠

streampark 支持spark吗 spark dstream_big data_03

二、Spark Streaming

模仿流计算

Spark是以线程级别并行,实时响应级别高

可以实现秒级响应,变相实现高效的流计算

streampark 支持spark吗 spark dstream_spark_04


Spark Streaming是一个基于Spark Core之上的实时计算框架,可以从很多数据源消费数据并对数据进行处理。

streampark 支持spark吗 spark dstream_spark_05


streampark 支持spark吗 spark dstream_streampark 支持spark吗_06


streampark 支持spark吗 spark dstream_scala_07


streampark 支持spark吗 spark dstream_流计算_08


streampark 支持spark吗 spark dstream_scala_09


streampark 支持spark吗 spark dstream_streampark 支持spark吗_10


streampark 支持spark吗 spark dstream_流计算_11

三、DStream

在Spark Streaing中有一个最基本的抽象叫DStream(代理),本质上就是一系列连续的RDD,DStream其实就是对RDD的封装。

DStream可以任务是一个RDD的工厂,该DStream里面生产都是相同业务逻辑的RDD,只不过是RDD里面要读取数据的不相同

深入理解DStream:他是sparkStreaming中的一个最基本的抽象,代表了一下列连续的数据流,本质上是一系列连续的RDD,你对DStream进行操作,就是对RDD进行操作

DStream每隔一段时间生成一个RDD,你对DStream进行操作,本质上是对里面的对应时间的RDD进行操作

DSteam和DStream之间存在依赖关系,在一个固定的时间点,对个存在依赖关系的DSrteam对应的RDD也存在依赖关系,
每个一个固定的时间,其实生产了一个小的DAG,周期性的将生成的小DAG提交到集群中运行。

四、文件流操作

wordcount实例

object FileWordCount {
  def main(args: Array[String]): Unit = {
    // 创建Spark配置对象
    val conf = new SparkConf()
      .setMaster("local[2]")
      .setAppName("FileWordCount")

    // 按照时间间隔为3秒钟切分数据流
    val ssc = new StreamingContext(conf, Seconds(3))
    // 创建行分段流,接收文件流
    val lines = ssc.textFileStream("file:///user/local/logfile")
    // 生成单词分段流
    val words = lines.flatMap(_.split(" "))
    // 计算每一批次中的每个单词数量,并进行词频统计
    val wc = words.map(x=>(x,1)).reduceByKey(_+_)
    // 输出分段流中每个RDD的词频统计结果
    wc.print()

    // 开始计算
    ssc.start()
    // 等待计算结束
    ssc.awaitTermination()
  }
}

创建StreamingContext对象

streampark 支持spark吗 spark dstream_big data_12


streampark 支持spark吗 spark dstream_spark_13


streampark 支持spark吗 spark dstream_streampark 支持spark吗_14


streampark 支持spark吗 spark dstream_big data_15

五、套接字流

参考