当前位置: 首页 > news >正文

大数据——Spark Streaming

是什么

Spark Streaming是一个可扩展、高吞吐、具有容错性的流式计算框架。
之前我们接触的spark-core和spark-sql都是离线批处理任务,每天定时处理数据,对于数据的实时性要求不高,一般都是T+1的。但在企业任务中存在很多的实时性的任务需求,列如双十一的京东阿里都会要求做一个实时的数据大屏,显示实时订单。
在这里插入图片描述
实时计算框架对比

框架类别框架类型数据单位其他吞吐量延迟
Storm流式计算框架record的处理数据单位支持micro-batch方式一般更低
Spark批处理计算框架RDD处理数据单位支持micro-batch流式处理数据更强一般

Spark Streaming组件

  • Streaming Context
    • 一个Context启动,则不能有新的DStream建立或者添加;
    • 一个Context停止,不能重新启动;
    • 在JVM中,只能有一个Streaming Context活跃;一个Spark Context会创建一个Streaming Context;
    • Streaming Context上调用stop方法,SparkContext也会关闭,如果只想关闭Streaming Context,可以设置stop()方法里的false参数;
    • 一个SparkContext对象可以重复创建多个Streaming Context对象,但每次只能运行一个,即需要关闭一个再开下一个。
  • DStream
    • 表示一个连续的数据流;
    • DStream内部是由一系列的RDD组成;
    • DStream中的每个RDD都有确定时间间隔内的数据;
    • 对DStream的操作都转换成对DStream隐含的RDD操作;
    • 数据源:
数据源类型
基本源TCP/IP or FileSystem
高级源Kafka or Flume

Spark Streaming编码步骤

import os
# 配置spark driver和pyspark运⾏时,所使⽤的python解释器路径
PYSPARK_PYTHON = "/miniconda2/envs/py365/bin/python"
JAVA_HOME='/root/bigdata/jdk'
SPARK_HOME = "/root/bigdata/spark"
# 当存在多个版本时,不指定很可能会导致出错
os.environ["PYSPARK_PYTHON"] = PYSPARK_PYTHON
os.environ["PYSPARK_DRIVER_PYTHON"] = PYSPARK_PYTHON
os.environ['JAVA_HOME']=JAVA_HOME
os.environ["SPARK_HOME"] = SPARK_HOME
from pyspark import SparkContext
from pyspark.streaming import StreamingContextif __name__ == "__main__":sc = SparkContext("local[2]",appName="NetworkWordCount")#参数2:指定执⾏计算的时间间隔ssc = StreamingContext(sc, 1)#监听ip,端⼝上的上的数据lines = ssc.socketTextStream('localhost',9999)#将数据按空格进⾏拆分为多个单词words = lines.flatMap(lambda line: line.split(" "))#将单词转换为(单词,1)的形式pairs = words.map(lambda word:(word,1))#统计单词个数wordCounts = pairs.reduceByKey(lambda x,y:x+y)#打印结果信息,会使得前⾯的transformation操作执⾏wordCounts.pprint()#启动StreamingContextssc.start()#等待计算结束ssc.awaitTermination()

Spark Streaming状态操作

Spark Streaming存在两种状态操作:UpdateStateByKey和Window操作。

  • updateStateByKey
    如果没有updateStateByKey,我们需要将每一秒的数据计算好放入mysql中,再用mysql进行计算,而updateStateByKey将每隔一段数据进行打包,封装成RDD,这样每个时间片段的数据之间是没有关联的。一般为以下步骤:
  1. ⾸先,要定义⼀个state,可以是任意的数据类型
  2. 其次,要定义state更新函数–指定⼀个函数如何使⽤之前的state和新值来更新state
  3. 对于每个batch,Spark都会为每个之前已经存在的key去应⽤⼀次state更新函数,⽆论这个key在batch中是否有新的数据。如果state更新函数返回none,那么key对应的state就会被删除
  4. 对于每个新出现的key,也会执⾏state更新函数
  • Window
    在这里插入图片描述
    Window操作是基于窗⼝⻓度和滑动间隔来⼯作的;窗⼝的⻓度控制考虑前⼏批次数据量;默认为批处理的滑动间隔来确定计算结果的频率。
    窗口长度L是运算的数据量;
    滑动间隔G是控制每隔多长时间做一次运算。

相关文章:

大数据——Spark Streaming

是什么 Spark Streaming是一个可扩展、高吞吐、具有容错性的流式计算框架。 之前我们接触的spark-core和spark-sql都是离线批处理任务,每天定时处理数据,对于数据的实时性要求不高,一般都是T1的。但在企业任务中存在很多的实时性的任务需求&…...

graphviz 绘制二叉树

代码 digraph BalancedBinaryTree {node [fontname"Arial", shapecircle, stylefilled, color"#ffffff", fillcolor"#0077be", fontsize12, width0.7, height0.7];edge [fontname"Arial", fontsize10, color"#333333", arr…...

STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决

我们一般用SW调试接口 所以DEBUG选择Serial Wire 这样PA15可以用作普通IO使用。 工程中默认加上: PA13(JTMS/SWDIO).ModeSerial_Wire PA13(JTMS/SWDIO).SignalDEBUG_JTMS-SWDIO PA14(JTCK/SWCLK).ModeSerial_Wire PA14(JTCK/SWCLK).SignalDEBUG_JTCK-SWCLK...

【ARM Coresight 系列文章 9 -- ETM 介绍 1】

文章目录 ARM Coresight ETM 介绍1.1.1 ARM Coresight ETM 版本介绍1.1.2 ARM Coresight 常见术语1.2 ARM Coresight ETM 常用寄存器介绍1.2.1 TRCVIIECTLR(ViewInst Include-Exclude Control Register)1.2.2 TRCVISSCTLR(ViewInst Start/Stop Processing Element Comparator C…...

设计模式 - 中介者模式

目录 一. 前言 二. 实现 三. 优缺点 一. 前言 中介者模式又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。 中介者模式可以使对象之间的关系数量急剧减少&#xff0…...

HttpServletRequest对象与RequestDispatcher对象

一、HttpServletRequest对象 1.介绍 在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在…...

Spring Boot启动流程

加载启动类:加了SpringBootApplication的启动类的main 方法中,通过运行SpringApplication.run()方法启动 【SpringBootApplication是由EnableAutoConfiguration(导入自动配置AutoConfigurationSelector类从而加载加了Configuration的配置&am…...

ARM day5

三盏灯流水 .text .global _start _start: 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<4)STR R1,[R0] 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<5)STR R1,[R0] 2.LDR R0,0X50006000LDR R1,[R0]BIC R1,R1,#(0X3<<20)ORR R1,R1,#(0X1<<…...

流程引擎概述及组成

流程引擎概述及组成 一、流程引擎概述 流程&#xff0c;可以理解为步骤&#xff0c;一个有序的活动或动作&#xff1b; 引擎&#xff0c;可以理解为驱动&#xff0c;是一个程序或者一套系统。 所以&#xff0c;字面意思可以理解为&#xff0c;流程引擎是一套&#xff08;或…...

定时任务Apscheduler实践案例

定时任务Apscheduler实践案例 参考文章 https://blog.csdn.net/weixin_44799217/article/details/127353134 实现案例 本案例是使用定时任务apscheduler实现的每个三分钟发送一次邮件的任务 实现代码 import time from apscheduler.schedulers.blocking import BlockingSched…...

C#学习系列相关之多线程(五)----线程池ThreadPool用法

一、线程池的作用 线程池是一种多线程处理形式&#xff0c;处理过程中将任务添加到队列&#xff0c;然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认堆栈大小&#xff0c;以默认的优先级运行&#xff0c;并处于多线程单元中。如果某个线程在托管…...

京东数据接口|电商运营中数据分析的重要性

在电商运营中&#xff0c;数据分析是非常重要的一环&#xff0c;它可以帮助电商企业更好地了解市场、了解消费者、了解产品、了解销售渠道等各种信息&#xff0c;从而制定更为科学有效的运营策略&#xff0c;提高销售效益。 数据方面用户可以直接选择使用数据接口来获取&#…...

C++入门(1)

目录 1.C关键字2.命名空间(namespace)2.1是什么2.2为什么2.3怎么用 3.C输入&输出4.缺省函数概念分类 5.函数重载6.引用6.1概念6.2特性6.3使用场景6.4引用和指针的不同点 1.C关键字 C总共有63个关键字 这里入门不多说&#xff0c;有需要的自行去了解 2.命名空间(namespac…...

redis-6.2.7 集群安装3主3从

因为资源有限准备了3 台 服务器&#xff0c;先查看防火墙的端口是否开放&#xff0c;如果没有开放先开放端口我使用的 6379 和 6380 这两个端口 所以将这两个端口放开。去redis 官网下载redis 安装包。下载地址 &#xff1a; redis 安装包下载 3. 安装redis 上传上去之后 3 台…...

【动态库】Ubuntu 添加动态库的搜索路径

在运行程序时&#xff0c;经常遇到下面这种动态库加载失败的情况&#xff0c;这时往往是系统在动态库的搜索路径下没有找到对应的库文件导致的。 目录 一、使用 LD_LIBRARY_PATH 二、修改 /etc/ld.so.conf 一、使用 LD_LIBRARY_PATH 环境变量 LD_LIBRARY_PATH是动态库的搜索…...

95740-26-4|用于体内DNA合成的探针F-ara-EdU

产品简介&#xff1a;(2S)-2-Deoxy-2-fluoro-5-ethynyluridine&#xff0c;一种用于体内DNA合成的探针&#xff0c;其毒性比EdU和BrdU都小。当需要延长细胞存活时间和不受干扰的细胞周期进展时&#xff0c;非常适合进行代谢DNA标记。 CAS号&#xff1a;95740-26-4 分子式&…...

Ajax使用流程

Ajax在不刷新页面的情况下&#xff0c;进行页面局部更新。 Ajax使用流程&#xff1a; 创建XmlHttpReqeust对象发送Ajax请求处理服务器响应 1. 创建XmlHttpReqeust对象 XmlHttpReqeust对象是Ajax的核心&#xff0c;使用该对象发起请求&#xff0c;接收响应 不同的浏览器创建…...

1808_ChibiOS基本的架构介绍

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 简单看了一下ChibiOS的架构介绍&#xff0c;感觉这种OS以及组件非常适合快速构建一个应用。这里做一个简单的资料整理。。 1. 不同于其他的OS&#…...

曦力音视频转换工具Xilisoft Video Converter Ultimate mac中文版

Xilisoft Video Converter Ultimate mac是一款功能强大的视频转换软件&#xff0c;它可以将几乎所有流行的视频格式转换为其他格式&#xff0c;包括AVI、MPEG、WMV、DivX、MP4、H.264/AVC、AVCHD、MKV、RM、MOV、XviD、3GP等。此外&#xff0c;它还支持将视频转换为音频格式&am…...

Spring MVC 五:DispatcherServlet初始化之 mvc:annotation-driven

通过xml方式初始化DispatcherServlet时&#xff0c;xml文件中可以配置&#xff1a; <mvc:annotation-driven />或&#xff1a; <mvc:annotation-driven ><!--设置响应输出字符集--><mvc:message-converters><bean class"org.springframework.…...

Intv_ai_mk11 模型原理浅析:深入理解大语言模型背后的网络架构

Intv_ai_mk11 模型原理浅析&#xff1a;深入理解大语言模型背后的网络架构 1. 从简单对话到复杂生成&#xff1a;大语言模型的进化之路 想象一下你和朋友聊天的场景&#xff1a;你们能自然地理解对方的话&#xff0c;记住之前的对话内容&#xff0c;还能根据上下文给出恰当回…...

SEO_资深专家分享SEO内容优化的核心方法

SEO内容优化的核心方法&#xff1a;资深专家分享 在当今竞争激烈的互联网时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已经成为提升网站流量和品牌知名度的关键。资深专家在SEO领域积累了丰富的经验&#xff0c;他们提出了许多实用的方法来优化内容。本文将详细探…...

Win11Debloat:三步焕新Windows系统,让老电脑性能提升50%的开源神器

Win11Debloat&#xff1a;三步焕新Windows系统&#xff0c;让老电脑性能提升50%的开源神器 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other chan…...

霜儿-汉服-造相Z-Turbo入门必看:从零启动到生成高清古风人像全流程

霜儿-汉服-造相Z-Turbo入门必看&#xff1a;从零启动到生成高清古风人像全流程 想亲手生成一张充满诗意的古风汉服人像吗&#xff1f;比如&#xff0c;一位身着月白霜花刺绣汉服的少女&#xff0c;在江南庭院的白梅树下&#xff0c;气质清冷&#xff0c;宛如从画中走来。这听起…...

如何在VMware上运行macOS虚拟机:终极Unlocker完整指南

如何在VMware上运行macOS虚拟机&#xff1a;终极Unlocker完整指南 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 你是不是一直想在Windows或Linux电脑上体验macOS系统&#xff0c;却被VMware的限制挡在…...

用ESP32-CAM和4G DTU做个远程监控:手把手教你拍照上传到巴法云(附完整代码)

基于ESP32-CAM与4G DTU构建低功耗远程图像监控系统 在智能家居、环境监测和远程安防等场景中&#xff0c;图像数据的实时采集与传输一直是物联网开发者的核心需求。传统方案往往受限于WiFi覆盖范围或复杂的网络配置&#xff0c;而4G网络与低功耗硬件的结合为这一问题提供了优雅…...

Phi-3-mini-4k-instruct-gguf真实案例:制造业设备说明书故障排查话术生成

Phi-3-mini-4k-instruct-gguf真实案例&#xff1a;制造业设备说明书故障排查话术生成 1. 场景痛点分析 在制造业设备维护领域&#xff0c;技术工程师每天需要处理大量设备故障咨询。传统方式存在几个典型问题&#xff1a; 响应效率低&#xff1a;工程师需要反复查阅厚重的纸…...

社区补丁系统深度解析:如何为 Emacs 添加高级功能

社区补丁系统深度解析&#xff1a;如何为 Emacs 添加高级功能 【免费下载链接】homebrew-emacs-plus Emacs Plus formulae for the Homebrew package manager 项目地址: https://gitcode.com/gh_mirrors/ho/homebrew-emacs-plus Homebrew-emacs-plus 是一个专为 Homebre…...

小白也能用!M2FP多人人体解析服务一键部署教程

小白也能用&#xff01;M2FP多人人体解析服务一键部署教程 1. 什么是M2FP多人人体解析服务&#xff1f; M2FP&#xff08;Mask2Former-Parsing&#xff09;是目前业界领先的语义分割算法&#xff0c;专注于多人人体解析任务。它能精准识别图像中多个人物的不同身体部位&#…...

北京天文馆新馆玻璃幕墙及玻璃旋体设计与施工技术

北京天文馆新馆玻璃幕墙及玻璃旋体设计与施工技术 摘要:本文对北京天文馆新馆异形玻璃幕墙及采光顶、马鞍形玻璃通道和 四个体形各异的玻璃旋体,在设计和施工中碰到的技术难题及解决方案作了详细的介绍,特别是对异形钢结构和不规则双曲面玻璃的加工制作以及特殊节点的外观…...