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

谈一谈大数据流式处理,以Spark Streaming为例详细论述

Spark Streaming是构建在Spark上的实时流计算框架,可以进行实时流数据处理。Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。而Spark Streaming则扩展了Spark处理大规模流式数据的能力。

Spark Streaming能运行在100+的结点上,并达到秒级延迟。它使用基于内存的Spark作为执行引擎,具有高效和容错的特性。还能集成Spark的批处理和交互查询,为实现复杂的算法提供和批处理类似的简单接口。

Spark Streaming使用“微批次”的架构,把流式计算当作一系列连续的小规模批处理来对待。它从各种输入源中读取数据,并把数据分组为小的批次,新的批次按均匀的时间间隔创建出来。在每个时间区间开始的时候,一个新的批次就创建出来,在该区间内收到的数据都会被添加到这个批次中,在时间区间结束时,批次停止增长。时间区间的大小是由批次间隔这个参数决定的,批次间隔一般设在500毫秒到几秒之间,由应用开发者配置。每个输入批次都形成一个RDD,以Spark作业的方式处理并生成其他的RDD,处理的结果可以以批处理的方式传给外部系统。

从原理上看,把传统的spark批处理程序变成streaming程序,spark需要构建四个内容:一个静态的RDD DAG的模板,来表示处理逻辑;一个动态的工作控制器,将连续的streaming data切分数据片段,并按照模板复制出新的RDD DAG的实例,对数据片段进行处理;Receiver进行原始数据的产生和导入;Receiver将接收到的数据合并为数据块并存到内存或硬盘中,供后续batch RDD进行消费;以及对长时运行任务的保障,包括输入数据的失效后的重构,处理任务的失败后的重调。


http://www.kler.cn/a/443368.html

相关文章:

  • 用 Python 绘制可爱的招财猫
  • 00000008_C并发编程与多线程
  • 全新免押租赁系统打造便捷安全的租赁体验
  • 【Arm】Arm 处理器的半主机(semihosting)机制
  • 联邦学习中的LoRA:FedLoRA
  • 深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02
  • arcgis for js实现地图截图、地图打印
  • react身份证回显
  • 前端:如何在静态目录下显示一张图片
  • OpenCV(python)从入门到精通——运算操作
  • C++ 只出现一次的数字 - 力扣(LeetCode)
  • Golang的向前兼容性和toolchain规则,Go1.21.0
  • SpringBoot3整合FastJSON2如何配置configureMessageConverters
  • RabbitMQ的工作模型
  • DataOps驱动数据集成创新:Apache DolphinScheduler SeaTunnel on Amazon Web Services
  • Spring Boot 中异常日志记录的最佳实践:实时示例
  • .NET Runtime 是什么?
  • DNS协议 是什么?说说DNS 完整的查询过程?
  • 矩阵在资产收益(Asset Returns)中的应用:以资产回报矩阵为例(中英双语)
  • 使用 Django 和 AWS 实现自动同步 ECR 信息
  • 《算法ZUC》题目
  • C++算法第十一天
  • Scala快速入门+示例
  • html <a>设置发送邮件链接、打电话链接 <a href=“mailto:></a> <a href=“tel:></a>
  • 网页核心页面设计(第10章)
  • C语言:排序