Spark-Streaming的学习使用

简介: SparkStreamingSpark Streaming可以轻松构建可扩展的容错流应用程序。 便于使用 把之前学过的处理离线数据的算子直接拿来使用 容错 sparkStreaming可以保证数据被消费一次 保证不丢失,不重复消费数据。 集成

1. SparkStreaming

Spark Streaming可以轻松构建可扩展的容错流应用程序。

   便于使用

   把之前学过的处理离线数据的算子直接拿来使用

   容错

   sparkStreaming可以保证数据被消费一次

   保证不丢失,不重复消费数据。

   集成

   flume/kafka/tcp sockets

2. SparkStreaming计算架构

image.png

3. Dstream

编写sparkStreaming程序需要了解Dstream。

一个抽象。流计算,数据源往往分布在多台计算。

Dstream属于离散(多台机器)数据流,我们在streaming程序中以Dstream表示。

首先创建Dstream,对Dstream进行处理就可以了。

rdd的类型:

1)transformation

2) action

Dstream也存在Transformation与action。Dstream其实也就是对rdd的高级包装。

Dstream如果接受实时的数据流会把数据切分为批次,这个批次会被spark引擎处理。

对于每个批次都会产生结果。

4.使用spark-Streaming进行流式wordcount计算

package day07
import org.apache.spark.streaming.dstream.{DStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Milliseconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}
/*
rdd:创建程序入口 sparkContext
dataframe: sparkSession
Dstream:
 */
object WordCount {
  def main(args: Array[String]): Unit = {
    //1.创建sparkCOntect
    val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")
    val sc = new SparkContext(conf)
    //2.创建streamingContext
    val ssc: StreamingContext = new StreamingContext(sc,Milliseconds(2000))
    //3.可以创建Dstream, 首先接入数据源
    //socket
    val data: ReceiverInputDStream[String] =
      ssc.socketTextStream("192.168.64.111",7788)
    //4.进行计算,创建dstream
    val rd: DStream[(String, Int)] = data
      .flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
    //5.打印结果
    rd.print()
    //6.注意:需要启动sparstreaming程序
    ssc.start()
    ssc.awaitTermination()
  }
}
相关文章
|
8月前
|
分布式计算 API Spark
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
133 11
|
8月前
|
分布式计算 并行计算 大数据
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
393 1
|
8月前
|
SQL 分布式计算 API
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
170 2
|
3月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
77 5
|
3月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
56 3
|
3月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
76 0
|
3月前
|
分布式计算 算法 Spark
spark学习之 GraphX—预测社交圈子
spark学习之 GraphX—预测社交圈子
73 0
|
3月前
|
分布式计算 Scala Spark
educoder的spark算子学习
educoder的spark算子学习
24 0
|
4月前
|
分布式计算 Shell Scala
学习使用Spark
学习使用Spark
130 3
|
5月前
|
分布式计算 Shell Scala
如何开始学习使用Spark?
【8月更文挑战第31天】如何开始学习使用Spark?
135 2