【SPARK】Spark Streaming简介

Spark Streaming可以整合多种输入数据源,如Kafka、Flume、HDFS甚至是普通的TCP套接字。经处理后的数据可存储至文件系统、数据库、或显示在仪表盘。

Spark Streaming执行流程

Spark Streaming的基本原理是将实时输入数据流以时间片(秒级)为单位进行拆分,然后经Spark引擎以类拟批处理的方式处理每个时间片数据

DStream操作示意图

Spark Streaming最主要的抽象是DStream(Discretized Stream,离散化数据流),表示连续不断的数据流。在内部实现上,Spark Streaming的输入数据按照时间片(如1秒)。一个DStream,就是一堆的RDD,即RDD集合,所以多DStream的操作就是对RDD的操作

Spark输入源

文件流:https://github.com/chris1132/spark_lecture/blob/master/src/main/scala/com/chovy/spark/SparkStreaming/FileStream.scala

套接字流:https://github.com/chris1132/spark_lecture/blob/master/src/main/scala/com/chovy/spark/SparkStreaming/SocketSream.scala

RDD队列流:https://github.com/chris1132/spark_lecture/blob/master/src/main/scala/com/chovy/spark/SparkStreaming/RDDQueueStream.scala

kafka:https://github.com/chris1132/spark_lecture/tree/master/src/main/scala/com/chovy/spark/SparkStreaming/kafka

DStream无状态转换操作

一个DStream,就是一堆的RDD,即RDD集合,所以多DStream的操作就是对RDD的操作

map(func):对DStream的每个元素,采用func函数进行转换,得到一个新的DStream

flatMap(func):与map相似,但是每个输入项可用被映射为0个或者多个输出项

repartition(numPartitions):通过创建更多或更少的分区改变DStream的并行程度

count():统计源DStream中每个RDD的元素数量

filter(func):返回一个新的DStream,仅包含源DStream中满足函数func的项

reduce(func):利用函数func聚集源DStream中每个RDD的元素,返回一个包含单元素RDDs的新DStream

union(otherStream):返回一个新的DStream,包含源DStream和其他DStream的元素

countByValue():应用于元素类型为K的DStream上,返回一个(K,V)键值对类型的新DStream,每个键的值是在原DStream的每个RDD中的出现次数

reduceByKey(func,[numTasks]):当一个由(K,V)键值对组成的DStream上执行该操作时,返回一个新的由(K,V)键值对组成的DStream,每一个key的值均由给定的reduce函数聚集起来

猜你喜欢

转载自blog.csdn.net/u010530712/article/details/82853896