Spark的Streaming和Spark的SQL简单入门学习
1、Spark Streaming是什么?
a、Spark Streaming是什么?
Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。另外Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合。
b、Spark Streaming的特点?
易用、容错、易整合到Spark体系、
2、Spark与Storm的对比
a、Spark开发语言:Scala、Storm的开发语言:Clojure。
b、Spark编程模型:DStream、Storm编程模型:Spout/Bolt。
c、Spark和Storm的对比介绍:
Spark:
Storm:
3、什么是DStream?
3.1、Discretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark原语操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:
对数据的操作也是按照RDD为单位来进行的:
计算过程由Spark engine来完成
3.2、DStream相关操作:
DStream上的原语与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种Window相关的原语。
a、Transformations on DStream:
Transformation | Meaning |
map(func) | Return a new DStream by passing each element of the source DStream through a function func. |
flatMap(func) |