【spark】之 spark streaming

Spark Streaming详细文本教学01 文章目录前言TERMINAL 1:Running Netcat未完の 前言 你们好我是啊晨 今儿更新spark 技术Spark Streaming。 废话不多说,内容很多选择阅读,详细。 请: 一、Spark Streaming概述 1、什么是Spark Streaming Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Strea... 阅读详情

SparkStreaming

  Spark Streaming类似于Apache Storm,用于流式数据的处理。Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象操作如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。

特性

1、易用性
可以像编写离线批处理一样去开发流式的处理程序,并且可以使用java/scala/Python语言进行代码开发
2、容错性
SparkStreaming在没有额外代码和配置的情况下可以恢复丢失的工作。
3、可以融合到spark生态系统
sparkStreaming流式处理可以跟批处理和交互式查询相结合

与storm对比

storm是来一条数据处理一条数据,SparkStreaming是以某一时间间隔批量处理数据。

SparkStreaming原理

Spark Streaming 是基于spark的流式批处理引擎,核心是采用微批次架构,即把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流。

计算流程

Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark Core,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),
每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,
将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行缓存或者存储到外部设备。下图显示了Spark Streaming的整个流程。

 

 容错性

对于流式计算来说,容错性至关重要。首先我们要明确一下Spark中RDD的容错机制。每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(lineage),所以只要输入数据是可容错的,那么任意一个RDD的分区(Partition)出错或不可用,都是可以利用原始输入数据通过转换操作而重新算出的。

实时性

对于实时性的讨论,会牵涉到流式处理框架的应用场景。Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG(有向无环图)图分解以及Spark的任务集的调度过程。
对于目前版本的Spark Streaming而言,其最小的Batch Size的选取在0.5~2秒钟之间(Storm目前最小的延迟是100ms左右),
所以Spark Streaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。

DStream

  Discretized Stream是Spark Streaming的基础抽象,代表持续性的数据流和经过各种Spark算子操作后的结果数据流。在内部实现上,DStream是一系列连续的RDD来表示。每个RDD含有一段时间间隔内的数据,如下图:

对数据的操作也是按照RDD为单位来进行的

  Spark Streaming使用数据源产生的数据流创建DStream,也可以在已有的DStream上使用一些操作来创建新的DStream。

  它的工作流程像下面的图所示一样,接受到实时数据后,给数据分批次,然后传给Spark Engine处理最后生成该批次的结果。

DStream相关操作

  DStream上的操作与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的操作,如:updateStateByKey()、transform()以及各种Window相关的操作。

Transformations on DStreams

Transformation

Meaning

map(func)

对DStream中的各个元素进行func函数操作,然后返回一个新的DStream

flatMap(func)

与map方法类似,只不过各个输入项可以被输出为零个或多个输出项

filter(func)

过滤出所有函数func返回值为true的DStream元素并返回一个新的DStream

repartition(numPartitions)

增加或减少DStream中的分区数,从而改变DStream的并行度

union(otherStream)

将源DStream和输入参数为otherDStream的元素合并,并返回一个新的DStream.

count()

通过对DStream中的各个RDD中的元素进行计数,然后返回只有一个元素的RDD构成的DStream

reduce(func)

对源DStream中的各个RDD中的元素利用func进行聚合操作,然后返回只有一个元素的RDD构成的新的DStream.

countByValue()

对于元素类型为K的DStream,返回一个元素为(K,Long)键值对形式的新的DStream,Long对应的值为源DStream中各个RDD的key出现的次数

reduceByKey(func, [numTasks]) 

利用func函数对源DStream中的key进行聚合操作,然后返回新的(K,V)对构成的DStream

join(otherStream, [numTasks])

输入为(K,V)、(K,W)类型的DStream,返回一个新的(K,(V,W))类型的DStream

cogroup(otherStream, [numTasks])

输入为(K,V)、(K,W)类型的DStream,返回一个新的 (K, Seq[V], Seq[W]) 元组类型的DStream

transform(func)    

通过RDD-to-RDD函数作用于DStream中的各个RDD,可以是任意的RDD操作,从而返回一个新的RDD

updateStateByKey(func)

根据key的之前状态值和key的新值,对key进行更新,返回一个新状态的DStream

特殊的Transformations:

updateStateByKey 用于记录历史记录,保存上次的状态

reduceByKeyAndWindow  开窗函数

 

Output Operations on DStreams

相当于rdd的action的作用,transformation不会立即执行,到这才会执行

Output Operation

Meaning

print()

打印到控制台

saveAsTextFiles(prefix, [suffix])

保存流的内容为文本文件,文件名为

"prefix-TIME_IN_MS[.suffix]".

saveAsObjectFiles(prefix, [suffix])

保存流的内容为SequenceFile,文件名为

 "prefix-TIME_IN_MS[.suffix]".

saveAsHadoopFiles(prefix, [suffix])

保存流的内容为hadoop文件,文件名为

 "prefix-TIME_IN_MS[.suffix]".

 

Spark Streaming总结 一、本质 Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理 二、Spark Streaming和Spark Core 2.1 逻辑关系: 2.2 物理关系: 1) DStream:Spark Streaming提供了表示连续数据流的、高度抽象的被称为离散流的DStream 2) 任何对DStream的操作都会转变... 阅读详情

相关推荐

Spark Structed Streaming的一些主要特性及与Spark Streaming之间的对比

Spark Streaming 众所周知,Spark Streaming中的数据结构是Dstream,是对RDD的进一步的封装。 Spark Structed Streaming 对比

王某的博客 5540

Spark Streaming(头歌)

第1关:套接字流实现黑名单过滤 代码: importorg.apache.spark.SparkConf importorg.apache.spark.streaming.StreamingContext importorg.apache.spark.streaming.Seconds objectTransformBlackList{ defmain(args:Array[String]):Unit={ /**********Begin**********/ ...

m0_53510670的博客 4954

第16章:Spark Streaming与Structured Streaming

摘要: Spark Streaming采用微批处理模式,通过DStream将实时数据流切分为RDD序列进行处理,支持无状态和有状态转换(如窗口操作),但存在处理时间语义单一、API不统一等局限。Structured Streaming基于Spark SQL引擎,将流数据视为无限表,提供统一的DataFrame API、事件时间处理(支持Watermarking解决乱序问题)及端到端精确一次语义,支持多种输出模式(Append/Complete/Update)。示例展示了从Kafka读取JSON数据,通过Wa

1373

Spark Streaming入门

  Spark Streaming类似于Apache Storm,用于流式数据的处理。Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象操作如:map、reduce、join、window等进行运算。而结果也能保存在很多...

weixin_45289456的博客 314

Spark Streaming简介

Spark Streaming 是 Spark 核心 API 的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。 Spark Streaming 支持从多种数据源获取数据,包括 Kafka、Flume、Twitter、ZeroMQ、Kinesis 以及 TCP Sockets。从数据源获取数据之后,可以使用诸如 map、reduce、join 和 window 等高级函数进行复杂算...

大数据基础学习 2934

Spark核心之Spark Streaming

前面说到Spark的核心技术的时候,有和大家说过,有五大核心技术,不知道大家还记不记得; 给大家回忆下,这五大核心技术:分布式计算引擎Spark Core 、基于Hadoop的SQL解决方案SparkSQL 、可以实现高吞吐量、具备容错机制的准实时流处理系统Spark Streaming、分布式图处理框架Spark GraphX和构建在Spark上的分布式机器学习库Spark MLlib,现在应该有个印象了吧,其它的我就不多说了,今天主要是对Spark Streaming做个简单介绍,以便理解。 Sp

zp17834994071的博客 1887

Spark Streaming 实现数据实时统计案例

Spark 是一个基于内存式的分布式计算框架。具有高性能,高效可扩展,容错等优点。今天讲解一下spark的流计算,其实它也不完全是实时的流计算,算是一种准实时的流计算。上图讲解运行环境:需要linux环境下的spark环境本例用的centOS 6.5x64 因为需要使用TCP协议传输数据,所以需要安装一个nc插件。安装方式: yum install ncxxx 或者挂载光盘...

weixin_34186128的博客 1298

Spark Streaming实践

作者:禅与计算机程序设计艺术 1.简介 随着互联网、移动互联网、物联网等新型网络的飞速发展,数据量日益增长,如何从海量数据中快速获取有价值的信息,变得越来越重要。目前,大数据的处理主要靠离线计算框架MapReduce。随着云计算、大数据处理的发展,基于云平台的分布式计算框架Spark在不断壮大。Spar

AI天才研究院 4768

Spark Streaming实战之黑名单过滤

1.需求场景 访问日志: 201801,zs 201802,ls 201803,ww ..... 黑名单: zs,ls... 现在需要把黑名单中的人从访问日志中给过滤掉,然后得到一份新的访问日志 2.思路分析 要实现上边的需求,首先要进行思路分析,即如何实现 我们可以把黑名单数据先变成一个RDD,将它变成(zs,true) (ls,true)这样的形式,然后再将访问日志变成(z...

while false 1880

sparkstreaming.zip

java的sparkstreaming连接kafka的例子,kafka生产者生产消息,消费者读取消息,sparkstreaming读取kafka小区并进行存储iotdb数据库。

Spark-submit

hdp spark

【Spark Streaming】Spark Streaming的使用

一、Spark Streaming引入 集群监控 一般的大型集群和平台, 都需要对其进行监控的需求。 要针对各种数据库, 包括 MySQL, HBase 等进行监控 要针对应用进行监控, 例如 Tomcat, Nginx, Node.js 等 要针对硬件的一些指标进行监控, 例如 CPU, 内存, 磁盘 等 Spark Streaming介绍 官网:http://spark.apac...

依旧的博客 5217

JLink_Windows_V612f最新驱动

JLink_Windows_V612f最新驱动 下载了一个晚上才下载下来。

Spark 以及 spark streaming 核心原理及实践

Spark引进了弹性分布式数据集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。已经成为广告、报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spark技术的使用有一些自己的经验积累以及心得体会,在此分享给大家。

2301_82041400的博客 2067

FX2N-2AD模块实战:从硬件连接到FROM/TO指令编程详解

本文详细解析FX2N-2AD模拟量输入模块的硬件连接与FROM/TO指令编程技巧,涵盖BFM缓冲存储器配置、梯形图程序设计及工程实战经验。通过实例演示如何实现精准信号采集与数据处理,特别针对PLC系统中的常见故障提供解决方案,助力工业自动化工程师高效完成设备调试与维护。

prometheus9mon的博客 508

新版股票配资系统源码/股票分析系统技术方案

新版股票配资系统;全套源码支持新股申购功能,包含C#+MySQL开发的后台系统及Spring框架,采用C/S架构。注意:本源码仅限技术学习、功能测试及模拟交易使用,严禁用于非法用途,违者责任自负。

q318136906的博客 1647

Structured Streaming 和 Spark streaming的区别

我先简单的说一下Spark streaming,然后在想对比的说一下Structured Streaming Spark streaming的概述 Spark Streaming是一个基于Spark Core之上的实时计算框架,可以从很多数据源消费数据并对数据进行实时的处理 Spark Streaming类似于Apache Storm,用于流式数据的处理。 根据其官方文档介绍...

MannerXu的博客 5998

微机原理-基于8086电压报警2.5V仿真系统设计

*单片机设计介绍,微机原理-基于8086电压报警2.5V仿真系统设计。

2201_75940997的博客 1083

Structured Streaming && Spark Streaming

第一件事儿先贴官方文档,由此可见,英文的重要性啊,哈哈... structured streaming :http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html spark Streaming :http://spark.apache.org/docs/latest/streamin...

阿尼古 1422

ZYQN7000系列VxWorks驱动开发:VxWorks系统移植

文章目录ZYQN7000驱动开发:VxWorks系统移植1.硬件环境2.编译vsb和vip工程2.1修改设备树文件2.2添加调试打印组件3.选择uboot来启动VxWorks内核4.尝试在开发板上启动内核4.1 拷贝镜像和设备树至SD卡4.2开发板上电4.2.1 uboot成功启动4.2.2 启动VxWorks5.添加shell和cmd组件 ZYQN7000驱动开发:VxWorks系统移植 1.硬件环境 正点原子领航者开发板 2.编译vsb和vip工程 vsb和vip工程的编译过程可以参考之前的文章,htt

明故宫的记忆 5507

微波无源器件 功分器1 新型方波导双模无功功分器

本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。

qq_45245770的博客 1393

Spark Streaming

目录1 简介2 实例3 架构与抽象4 转化操作5 输出操作6 输入源7 24/7不间断运行 1 简介 许多应用需要即时处理收到的数据,例如用来实时追踪页面访问统计的应用、训练机器学习模型的应用,还有自动检测异常的应用。Spark Streaming 是Spark为这些应用而设计的模型。Spark Streaming使用离散化流作为抽象表示,叫做DStream。DStream可以从各种输入源创建,比如Flume、Kafka或者HDFS。创建出来的DStream支持两种操作,一种是转化操作(transforma

BGoodHabit的博客 1771

思科模拟器CIsco Packet Tracer利用三层交换机实现VLAN间路由

版权声明:如果对大家有帮助,大家可以自行转载的。 1.技术原理: 三层交换机具备网络层的功能,实现 VLAN 相互访问的原理是:利用三层交换机的路由功能,通过识别数据包的 IP 地址,查找路由表进行选路转发,三层交换机利用直连路由可以实现不同 VLAN 之间的相互访问。三层交换机给接口配置 IP 地址。采用 SVI(交换虚拟接口)的方式实现 VLAN 间互连。SVI 是指为交换机中的VLAN 创建...

qq_37992321的博客 1万+

Spark Streaming与Structured Streaming区别解析

特性维度编程接口低级 API:DStream(离散化流,Discretized Stream)高级 API:DataFrame / Dataset处理模型微批次(Micro-Batch)1. 微批次(默认)2. 连续处理(实验性)API 类型过程式(如何做)声明式(做什么)时间语义处理时间为主,事件时间支持较弱原生支持事件时间(Event Time)、处理时间、注入时间容错机制基于 WAL(Write-Ahead Log)和 RDD 血统(Lineage)

ITHomeZSL的博客 863

SATA硬件电路设计实战:从接口规范到高速布线技巧

本文深入探讨了SATA硬件电路设计的核心要点与实战技巧。从接口物理电气规范、AC耦合电容与阻抗控制等基础,到FPGA/SoC高速收发器选型配置,再到应对6Gbps高速信号的PCB布局布线艺术,系统性地解析了SATA电路设计中的关键挑战与解决方案,助力工程师规避常见陷阱,实现稳定可靠的存储接口设计。

tech5的博客 531

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 477
上一篇: scala 中 insertinto 插入hive数据数据重复或者乱码或者为空
下一篇: 【spark】spark 原理
lbf_ML
博客等级 码龄10年 16粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值