Spark Streaming-01

基于Spark core API 的一个扩展,处理实时数据流

Spark Core 模型是RDD SparkContext

Spark SQL  模型是DF/DS SparkSession

Spark Streaming 模型是DStream StreamingContext


处理实时数据流过程

Spark Streaming

input(Flume、Kafka、Socket) --> compute(基于core之上的一些算子) --> output(filesystem、hbase、sql、nosql)

Spark Streaming on ML and gragh processing algorithms,体现了spark一站式解决方案的特性

1、在内部,它的工作原理如下。 Spark Streaming接收实时输入数据流并将数据分成批,然后由Spark引擎处理,以批量生成最终结果流。


数据流进来先离散化,分成多个batch,然后持久化存两份,一个在executor一份存内存,然后对每个batch进行批处理


SparkStreaming测试

SparkStreaming支持三种socket通信:socketTextStream    socketStream    rawSocketTextStream

import org.apache.spark.SparkConf
import org.apache.spark.streaming.{Seconds, StreamingContext}


object SocketWordCountApp {
  def main(args: Array[String]){
    val sparkConf = new SparkConf().setAppName("SocketWordCountApp").setMaster("local[2]")
  val ssc = new StreamingContext(sparkConf,Seconds(10))

    val lines = ssc.socketTextStream("hadoop",9999)
    lines.flatMap(_.split(",")).map((_,1)).reduceByKey(_+_).print

    ssc.start()
    ssc.awaitTermination()
  }
}

划重点:运行一个有reciver的SparkStreaming任务,至少要分配两个core,一个用于reciver,一个用于处理数据

猜你喜欢

转载自blog.csdn.net/qq_15300683/article/details/80205235
今日推荐