Spark-streaming-summary
@(spark)[streaming]
Spark Streaming functionality. [[org.apache.spark.streaming.StreamingContext]] serves as the main entry point to Spark Streaming, while [org.apache.spark.streaming.dstream.DStream]] is the data type representing a continuous sequence of RDDs, representing a continuous stream of data.
下面的ppt还是蛮有意思的,作为全面科普不错。
overview
当然最重要的还是官方文档
下面的叙述纯属个人观点:
1. stream的本质是batch procession,也就是做不到一个tuple一个tuple的处理,但是可以做到一个batch一个batch的处理。有那么点像’tail XXX.log | grep xxx | uniq -c‘ 那个意思。对应到spark来说每个batch可以认为是个rdd,那么一系列的rdd就是dstream了。
2. 在spark当中对每个dstream的数据流实际上是分成两个部分,一部分是控制信息,走Akka;一部分是正常的数据处理,走blockManager
2. 解决了batch的问题,就要解决怎么获取数据的问题,在spark-streaming中,这个就是receiver,不同类型的数据源就是不同的receiver。典型的像HDFS,像socket像flume等等。
3. 作为一个streaming的系统,就有一个可靠性的问题了。有了checkpoint和wal之类的东西。
4. 剩下的主要问题就是提供怎样的api了:
- UpdateStateByKey Operation
- Transform Operation
- Window Operations
- Join Operations