当前位置:   article > 正文

SparkStreaming(一)基础知识_sparkstreaming 基础 与 套接字流

sparkstreaming 基础 与 套接字流

一、概述

Spark Streaming是Spark Core功能拓展,可以实现数据流的可扩展、高吞吐、容错处理。SparkStreaming处理的数据可以来源于多种数据源(如:Kafka、Flume、TCP套接字),这些数据流经过流式计算的复杂处理和加工,最终会将计算的结果存储到文件系统、数据库或者在仪表盘进行数据的实时展示。
在这里插入图片描述
在内部,SparkStreaming会将接受的流数据拆分为一个个批次数据(micro batch),通过Spark引擎处理微批RDD,产生最终的结果流。
在这里插入图片描述
在Spark Streaming中有一个高等级的抽象称为离散流或者DStream。DStream可以通过外部的数据源构建或者转换获得新的DStream(类似于Spark RDD的使用);

结论DStream底层是由Seq[RDD]序列构成

二、DStream离散流原理

DStream是Spark Streaming中最为核心的抽象,表现为一段连续的数据流(本质上是一组连续的RDD的序列集合),一个DStream中的一个RDD含有一个固定间隔的数据集。
在这里插入图片描述
应用在DStream上的任何操作底层都会转换为RDD的操作。
在这里插入图片描述
核心思想:微批 思想,底层使用spark rdd处理离散数据流

三、Input Source和Receivers

Input DStream表示从数据源接受的数据构建的DStream对象
构建Input DStream两种方式:

  • basic source: 通常不依赖第三方的依赖可以通过ssc直接创建,如:filesystem和socket
  • advanced source: 通常需要集成第三方依赖,如:kafka、flume其它流数据存储系统

basic source(基本数据源):

  • 文件系统创建(使用HDFS API从任意的文件系统读取文件目录数据,作为DStream数据源)
// 通过文件系统构建DStream 注意:路径指向一个目录而不是一个具体的文件
val lines = ssc.textFileStream("hdfs://xxx:9000/data")
  • 1
  • 2

注意:

  • 路径是一个目录,不是具体的文件
  • 数据目录支持通配符,如:hdfs://xxx:9000/data*;
  • 数据文件格式必须保证统一,建议文本类型
  • TCP Socket套接字
val lines = ssc.socketTextStream("localhost",8888)
  • 1
  • RDD Queue(RDD队列,可以将多个RDD存放到一个Queue队列中构建DStream)
// 注意:ssc中封装了sparkContext可以直接获取 无需手动创建
val rdd1 = ssc.sparkContext.makeRDD(List("Hello Spark","Hello Kafka"))
val rdd2 = ssc.sparkContext.makeRDD(List("Hello Scala","Hello Hadoop"))

// 通过Queue封装RDD,创建一个DStream
val queue = scala.collection.mutable.Queue(rdd1,rdd2)
val lines = ssc.queueStream(queue)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

advanced source(高级数据源):

  • 基于kafka
    (1).导入依赖
<dependency>
   <groupId>org.apache.spark</groupId>
   <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
   <version>2.4.4</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

(2).开发应用

package source

import org.apache.kafka.clients.consumer.{
   ConsumerConfig}
import org.apache.kafka.common.serial
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/758613
推荐阅读
相关标签
  

闽ICP备14008679号