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()
  }
}
相关文章
|
2月前
|
分布式计算 API Spark
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
Spark学习--day05、SparkCore电商网站实操、SparkCore-工程代码
69 11
|
2月前
|
分布式计算 并行计算 大数据
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
|
3月前
|
SQL 分布式计算 API
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
Spark学习------SparkSQL(概述、编程、数据的加载和保存)
|
2月前
|
分布式计算 Java Scala
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
Spark学习---day03、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(二)
|
2月前
|
SQL 分布式计算 Java
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
Spark学习---SparkSQL(概述、编程、数据的加载和保存、自定义UDFA、项目实战)
139 1
|
2月前
|
分布式计算 Spark 索引
Spark学习---day07、Spark内核(Shuffle、任务执行)
Spark学习---day07、Spark内核(源码提交流程、任务执行)
|
2月前
|
分布式计算 监控 Java
Spark学习---day06、Spark内核(源码提交流程、任务执行)
Spark学习---day06、Spark内核(源码提交流程、任务执行)
|
2月前
|
分布式计算 Spark
Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
【2月更文挑战第14天】Spark【Spark学习大纲】简介+生态+RDD+安装+使用(xmind分享)
34 1
|
2月前
|
分布式计算 Spark
Spark学习--day05、累加器
Spark学习--day05、累加器
|
2月前
|
存储 缓存 分布式计算
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存