Spark Streaming概述 特点 架构-程序员宅基地

技术标签: spark  Spark  

Spark Streaming概述

  1. Spark Streaming 是Saprk框架用于流式数据处理的功能模块,在 Spark Streaming 中,数据处理的单位是一小批而不是单条,而数据采集却是逐条进行的,因此 Spark Streaming 中需要设置时间间隔使得数据汇总到一定的量后再一并操作

  2. 和Spark基于RDD的概念很相似,Spark Streaming使用了一个高级抽象离散化流(discretized stream),叫作DStream

Spark Core&Spark SQL&Spark Streaming简单概括

spark core spark sql spark streaming
程序执行入口 SparkContext SparkSession StreamingContext
对应的API RDD DS/DF DStream

Spark Streaming特点

微批次准实时流式数据处理框架

Spark Streaming架构

Spark Streaming 架构图

在这里插入图片描述

Spark Streaming 背压机制

背压机制探讨的是Executor接收数据和处理数据速率是否一致的问题。Executor中有个专门接收数据的Receiver,在Spark1.5版本以前,如果想要限制Receiver接收数据的速率,可以通过设置参数“spark.streaming.receiver.maxRate”来实现,但是有可能造成Executor接收数据的速率高于处理数据的速率,那就会造成计算结点内存溢出等问题。为了解决这个问题,Spark1.5版本后,提供了背压机制,简单点来说,就是根据Executor处理数据的速率来动态决定Receiver接收数据的速率。相关参数为spark.streaming.backpressure.enabled,默认值false

DStream概述

Discretized Stream是Spark Streaming的基础抽象。在内部实现上,DStream是一系列连续的RDD来表示,每个RDD含有一段时间间隔内的数据,对这些RDD的转换是由Spark引擎来计算的, DStream的操作隐藏了的大多数的细节, 只提供给开发者了方便实用的高级 API

DStream特点

  1. 一旦StreamingContext已经启动, 则不能再添加新的 streaming computations

  2. 一旦一个StreamingContext已经停止(StreamingContext.stop()), 不能再重启

  3. 在一个 JVM 内, 同一时间只能启动一个StreamingContext

  4. stop() 的方式停止StreamingContext, 也会把SparkContext停掉. 如果仅仅想停止StreamingContext, 则应该这样: stop(false)

  5. 一个SparkContext可以重用去创建多个StreamingContext, 前提是以前的StreamingContext已经停掉,并且SparkContext没有被停掉

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43192537/article/details/109407445

智能推荐

Pandas基础学习 Task02:索引 (知识梳理脑图+全部资源教程)_现有一份关于ufo的数据集,请解决下列问题-程序员宅基地

文章浏览阅读453次。Pandas基础学习本次跟随Datawhale组队学习Pandas基础,希望能有所收获。Datawhale是一个很好的开源组织,会组织很多免费的知识学习。附上本次组队学习的计划和教程资料,即使没有当时加入组队学习,有兴趣的话从现在开始学习也不晚哦~现在学习喜欢用脑图的方式,知识点清晰明了,易于查找和复习,希望也可以帮助大家梳理知识脉络。_现有一份关于ufo的数据集,请解决下列问题

sqlalchemy.exc.ArgumentError: Mapper mapped class User->user could not assemble any primary key colu_sqlalchemy.exc.argumenterror: mapper mapper[user(u-程序员宅基地

文章浏览阅读4.2k次。学习flask-emigrate时候出现报错:sqlalchemy.exc.ArgumentError: Mapper mapped class User->user could not assembleany primary key columns for mapped table ‘user’然后上网查了好多解决办法,都不行,最后发现是我代码出问题,一个超级低级的错误………………..._sqlalchemy.exc.argumenterror: mapper mapper[user(user)] could not assemble a

自动重命名Terminal的Title_terminal自动标题-程序员宅基地

文章浏览阅读4.2k次。自动重命名Terminal的Titlevim ~/.bashrcecho -en "\033]0;New terminal title\a" # 在最后一行加入这个主要是在你在terminal中用多个tab打开多个服务器时会用到。_terminal自动标题

【QT+VTK 学习笔记】13:VTK图形处理2 法向量、曲率计算、网格平滑_vtk 获取面上任意点的法向量-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏16次。前言“VTK图形图像开发进阶_张晓东_罗火灵”的学习笔记。东灵工作室 教程系列导航:http://blog.csdn.net/www_doling_net/article/details/8763686学习资料VTK官网学习地址:https://vtk.org/doc/nightly/html/2.1法向量计算法向量的定义法向量,是空间解析几何的一个概念,垂直于平面的直线所表示的向量为该平面的法向量。法向量适用于解析几何。由于空间内有无数个直线垂直于已知平面,因此一个平面都存在无数个法向量(包_vtk 获取面上任意点的法向量

.netcore 简单使用ElasticSearch(7.6)_netcore elasticsearch-程序员宅基地

文章浏览阅读827次。最近在捣鼓学习了下ElasticSearch,在此记录下使用.netcore操作elastic search 的实现(简单的封装,使用)。需要注意的是不同版本的Elastic Search差异可能较大,需要对应版本去封装操作,例如6.x版本的支持1个index下多个Type,而7.x已经开始去掉了type概念,而且查询等操作中必须先指明indexname,否则报错。项目需要添加Elasticsearch.Net和Nest相关文档地址Elasticsearch文档:https://www.elas_netcore elasticsearch

五年高考三年模拟暗部软件库_8款实用的手机学习软件推荐,高中生学习必备!...-程序员宅基地

文章浏览阅读4.3k次。实用类的学习软件其实有挺多的,下面就自己日常收集和整理的软件中挑选一些出来分享一下吧!文末有获取方式1、化学方程式学好数理化,走遍天下都不怕!这款化学方程式软件包含方程式、俗称、颜色、性质和元素周期表五大模块,用来学习化学简直就是神器的存在。很后悔当初自己上学的时候怎么没有这样的软件,好像当初自己上学的时候用的还是山寨机,更别提安装软件了。这款软件几乎涵盖了上学时需要记得所有化学方程式,分门别类整..._暗部学习资料

随便推点

Big Sur下Parallels Desktop虚拟机无网络临时解决方式_mac big sur11.6.5 parallels 17 vethernet 无网络访问权限-程序员宅基地

文章浏览阅读1.9k次。虚拟机无法链接网络问题目前更新 Mac 到big Sur 的同学, 如果用到 Parallels 16.0.1 可能会遇到比较头疼的问题,就是虚拟机可以让你使用 但是网络链接不上…目前可行的临时解决方法分享给 大家:sudo -b /Applications/Parallels\ Desktop.app/Contents/MacOS/prl_client_app愿能帮助一些需要帮助的同学...._mac big sur11.6.5 parallels 17 vethernet 无网络访问权限

lua php aes,openresty 里面 aes ecb加密-程序员宅基地

文章浏览阅读650次。先上地址(代码将就着用吧O(∩_∩)O哈哈~)因为再nginx+lua,openresty项目要用到 AES的的ecb模式加解密,但是春哥用openssl实现的string库 我个人觉得不是很好理解。作为一个PHPer,于是参照php的 mcrypt库,利用luajit的ffi实现了一个aes加解密的库。aes encrypt with PHP:mcrypt_encrypt(MCRYPT_RIJN..._lua有没有好用的aes加密解密库

flask打开vue打包后的dist中index.html_flask index.html-程序员宅基地

文章浏览阅读2.3k次,点赞7次,收藏15次。写在前面:请先确认vue已经被正确的打包,即浏览器打开index.html是正常的,打包方式详见使用npm打包vue打包好的dist中通常包含以下文件以上就是flask调用需要的全部资源。flask调用部署的代码:rom flask import Flaskfrom flask import render_template #引入模板插件app = Flask(__name__,static_folder='./dist', #设置静态文件夹目录template_folder = "_flask index.html

解析Bootstrap中nav、collapse的使用方法_bootstrap navbar 平均分-程序员宅基地

文章浏览阅读1.2k次。一、导航分析(nav)源码文件:_navs.scss:导航模块Mixins/_nav-divider.scss:分隔线Mixins/_nav-vertical-align.scss:垂直对齐1、只是用css进行了样式修饰,对Js没有任何依赖 2、导航模块可以包含下拉模块 3、实现了水平、垂直、水平平均分配(table-cell实现,4.0移除)、tabs、胶囊等样式 4、Nav..._bootstrap navbar 平均分

Jmeter正则表达式提取token传递给下一个请求_jmeter 正则提取器在另一个请求里调用-程序员宅基地

文章浏览阅读826次。说明:这个例子中新增需要第一步的token才能登陆,所以我们需要调用获取的token第一步:获取token注意有请求头的话要记得填写请求头,填入信息头管理器中运行查看获取的的token第二步:用正则表达式提取,提取完记得添加调试取样器查看提取到的token值第三步:新增请求里填入相应信息,调用正则表达式提取的token这里的请求头中需要传入token,所有调用的token填在信息头管理器中最后运行..._jmeter 正则提取器在另一个请求里调用

Ubuntu小白:dpkg: 处理软件包 runit (--configure)时出错_e: dpkg was interrupted, you must manually run 'su-程序员宅基地

文章浏览阅读3k次。突然间发现UBUNTU 系统时间不对,同步互联网时间也不对,强迫症发作想改掉。然后看到一个教程装ntp。结果半路出了这个错误:dpkg: 处理软件包 runit (--configure)时出错: 子进程 已安装 post-installation 脚本 返回错误状态 1dpkg: 依赖关系问题使得 git-daemon-run 的配置工作不能继续: git-d_e: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to

推荐文章

热门文章

相关标签