Spark-Spark Streaming(4)-- 部署、监控
如果觉得不错,请给博主点个赞呗!!! 谢谢
如果觉得不错,请给博主点个赞呗!!! 谢谢
如果觉得不错,请给博主点个赞呗!!! 谢谢
目录
1、部署应用程序
1.1、要求
1.2、更新应用程式代码
2、监控
1、部署应用程序
本节讨论部署 Spark Streaming 应用程序的步骤。
1.1、要求
要运行 Spark Streaming 应用程序,您需要具备以下功能。
- Cluster with a cluster manager - 这是任何 Spark 应用程序的一般需求,并在部署指南中进行了详细讨论。
- Package the application JAR - 必须将流式应用程序编译到 JAR 中。如果使用 Spark-submit 启动应用程序,则不需要在 JAR 中提供 Spark 和 Spark Streaming。但是,如果您的应用程序使用高级源(例如 Kafka) ,那么您必须将它们链接到的额外artifact 以及它们的依赖项打包到用于部署应用程序的 JAR 中。例如,使用 kafkails 的应用程序必须在应用程序 JAR 中包含 spark-streaming-kafka-0-10 _ 2.12及其所有可传递的依赖项。
- Configuring sufficient memory for the executors - 由于接收到的数据必须存储在内存中,因此必须为执行器配置足够的内存来保存接收到的数据。请注意,如果您正在执行10分钟的窗口操作,系统必须至少保留10分钟的数据在内存中。因此,应用程序的内存需求取决于其中使用的操作。
- Configuring checkpointing - 配置检查点——如果流应用程序需要它,那么 Hadoop API 兼容的容错存储(如 HDFS、 S3等)中的一个目录必须配置为检查点目录和流应用程序,以便检查点信息可用于故障恢复。有关更多细节,请参阅检查点部分。
- Configuring automatic restart of the application driver -为了从驱动程序故障中自动恢复,用于运行流应用程序的部署基础设施必须监视驱动程序进程,并在驱动程序故障时重新启动。不同的集群管理器有不同的工具来实现这一点。
- Spark Standalone -Spark应用程序可以提交到Spark Standalone集群中运行(参见集群部署模式),也就是说,应用程序本身运行在其中一个工作节点上。此外,可以指示Standalone集群管理器来监督驱动程序,如果驱动程序由于非零退出码或运行驱动程序的节点失败而失败,则重新启动它。更多详细信息请参见Spark Standalone指南中的集群模式和监督。
- YARN -Yarn支持自动重新启动应用程序的类似机制。更多细节请参考YARN文档。
- Mesos -在Mesos中, Marathon已经被用来实现这一目标。
- Configuring write-ahead logs -自从 Spark 1.2以来,我们已经引入了提前写日志,以实现强大的容错保证。如果启用,则从接收方接收的所有数据都将写入配置检查点目录中的提前写入日志。这可以防止驱动程序恢复时的数据丢失,从而确保零数据丢失(在容错语义一节中详细讨论)。可以通过将配置参数 spark.streaming.receiver.writeAheadLog.enable 设置为 true 来启用。然而,这些更强大的语义可能会以单个接收者的接收吞吐量为代价。这可以通过并行运行更多的接收机来纠正,以增加总吞吐量。此外,建议在启用写前日志时禁用在 Spark 中复制接收到的数据,因为日志已经存储在复制存储系统中。这可以通过将输入流的存储级别设置为 StorageLevel.MEMORY _ and _ disk _ ser 来实现。当使用 S3(或任何不支持刷新的文件系统)进行预写日志时,请记住启用 spark.streaming.driver.writeAheadLog.closeFileAfterWrite 和 spark.streamreceies.writeaheadlog.closefileafterwrite。更多详细信息请参阅Spark Streaming配置。注意,当启用 i/o 加密时,Spark 不会加密写入提前写入日志的数据。如果需要对预写日志数据进行加密,则应将其存储在本机支持加密的文件系统中。
- Setting the max receiving rate -如果群集资源不够大,无法让流式传输应用程序尽快处理接收到的数据,则可以通过以记录/秒为单位设置最大速率限制来限制接收器的速率。 请参阅配置参数spark.streaming.receiver.maxRate(用于接收器)和spark.streaming.kafka.maxRatePerPartition(用于直接Kafka方法)。 在Spark 1.5中,我们引入了一个称为背压的功能,该功能消除了设置此速率限制的需要,因为Spark Streaming会自动计算出速率限制,并在处理条件发生变化时动态调整它们。 可以通过将配置参数spark.streaming.backpressure.enabled设置为true来启用此背压。
1.2、更新应用程式代码
如果运行中的 Spark Streaming 应用程序需要使用新的应用程序代码进行升级,那么有两种可能的机制。
- 升级后的 Spark Streaming 应用程序将与现有应用程序并行启动和运行。一旦新的一个(接收与旧数据相同的数据)已经预热,并准备好黄金时间,旧的一个可以被带下来。注意,对于支持将数据发送到两个目的地(即早期和升级的应用程序)的数据源,可以这样做。
- 现有的应用程序被优雅地关闭(请参阅 StreamingContext.stop (...)或 JavaStreamingContext.stop (...)以获得优雅的关闭选项) ,确保在关闭之前完全处理已接收的数据。然后可以启动升级后的应用程序,这将从早期应用程序中断的相同位置开始处理。请注意,这只能通过支持源端缓冲(如 Kafka)的输入源来实现,因为在前一个应用程序关闭且升级的应用程序尚未启动时,需要缓冲数据。无法从升级前代码的早期检查点信息重新启动。检查点信息本质上包含序列化的 Scala/Java/Python 对象,尝试用新的、修改过的类反序列化对象可能会导致错误。在这种情况下,要么使用不同的检查点目录启动升级后的应用程序,要么删除以前的检查点目录。
2、监控
除了 Spark 的监控功能,还有其他特定于 Spark Streaming 的功能。当使用 StreamingContext 时,Spark web UI 显示了一个附加的 Streaming 选项卡,它显示了运行接收器(接收器是否处于活动状态、接收记录的数量、接收器错误等)和已完成批处理(批处理时间、排队延迟等)的统计信息。这可用于监视流应用程序的进度。
在 web UI 中,以下两个指标尤其重要:
- Processing Time - 处理每批数据所需的时间
- Scheduling Delay - 一个批处理在队列中等待先前批处理完成的时间
如果批处理时间始终大于批处理时间间隔,并且/或者排队延迟不断增加,则表明系统无法在批处理产生的同时快速处理批处理,并且落后了。在这种情况下,可以考虑减少批处理时间。
Spark-Spark Streaming(4)-- 部署、监控相关推荐
- kafka spark Structured streaming整合后集群报错KafkaConsumer.subscribe(Ljava/util/Collection;)V
简介 整个项目架构是在CDH中,,然后spark Structured streaming消费kafka. spark 2.3版本 kafka0.10版本 <!-- spark sql kafk ...
- 【Spark Streaming】(四)基于 Spark Structured Streaming 的开发与数据处理
文章目录 一.前言 二.Spark Streaming vs Structured Streaming 2.1 Spark Streaming 2.2 Structured Streaming 2.3 ...
- Spark on k8s Operator 部署安装
Spark on k8s Operator 部署安装 1. 背景 受限于公司内网环境,无法构建梯子及部分网络策略,不能使用网络资源直接部署,需要手动编译安装 2. 环境准备 centos 7 Kube ...
- 大数据Spark Structured Streaming
目录 1 Spark Streaming 不足 2 Structured Streaming 概述 2.1 模块介绍 2.3 编程模型 3 入门案例:WordCount 3.1 功能演示 3.2 So ...
- Spark2.3(三十五)Spark Structured Streaming源代码剖析(从CSDN和Github中看到别人分析的源代码的文章值得收藏)...
从CSDN中读取到关于spark structured streaming源代码分析不错的几篇文章 spark源码分析--事件总线LiveListenerBus spark事件总线的核心是LiveLi ...
- 测试hudi-0.7.0对接spark structure streaming
测试hudi-0.7.0对接spark structure streaming 测试环境 Hudi version :0.7.0 Spark version :2.4.0 Hive version : ...
- Spark HA高可用部署、基于文件系统单点恢复、基于zookeeper的Standby Master、如何恢复到上一次活着master挂掉之前的状态 03
1. Spark HA高可用部署 Spark Standalone集群时Master-Slaves架构的集群模式,和大部分的Master-Slaves结果集群一样,存在着Master单点故障的问题.如 ...
- spark on hive 的部署,和spark on hive (ha)在本地测试步骤
spark on hive 的部署 1.把hive -site.xml文件拷贝到安装spark 目录下conf里(注意,要重启spark集群生效) 2.启动hive服务 hive --servic ...
- Spark Structured Streaming 解析 JSON
文章目录 json1 代码 写数据库 json2 Schema 代码(反序列化 value 中的字节数组, 得到原始 JSON) json3 代码 json1 {"metadata" ...
- [Spark]Spark Streaming 指南四 输入DStreams和Receivers
1. 输入DStream与Receiver 输入DStreams表示从源中获取输入数据流的DStreams.在指南一示例中,lines表示输入DStream,它代表从netcat服务器获取的数据流.每 ...
最新文章
- 2022-2028年中国车载天线行业市场前瞻与投资战略规划分析报告
- 学习LINUX的几点注意事项
- PHP任何类转对象访问
- 要找工作了,拿什么拯救你——我的能力
- 如何使用 kubectl 通过命令行的方式操作 SAP Kyma
- 诺微联盟催生智能手机的三足鼎立
- 问题 C: 判断三角形的性质
- C/C++文件字符串处理
- python对于设计师有什么用-《学习PYTHON—做个有编程能力的设计师》
- 数据库中主键与索引的区别
- 线性表_栈_逆波兰计算式(Reverse Polish Notation)
- t3网络计算机浏览卡死,用友T3软件营改增界面关不了,电脑死机,总账用不了怎么办?...
- 激励函数的意义和常用几个激励函数
- MP3格式的音乐怎么转换成WAV格式?小编教你一招
- 计算机网络在化学中的应用论文,计算机在化学中应用
- 二叉树期权定价与BSM期权定价
- 推送通知的跳转处理和消息提醒
- 洛谷P1053 篝火晚会
- 投资理财之基金三:债券基金
- java实现丢手绢问题_java小孩丢手绢问题
热门文章
- 你认为微软 Win12 可以在哪些方面改进?
- pdfjs 字体新增_JS - PDF文件生成库jsPDF使用详解2(修改文字样式)
- HANA XS 匿名访问
- 大数据平台回归SQL
- 目标检测系列:SSD系列SSD、FSSD、DSSD、DSOD
- 相关性分析热点图_防老剂TMQ及6PPD价格上涨逻辑分析及后市展望
- 什么是五险一金,你懂吗?
- 论文阅读(联邦学习):Exploiting Shared Representations for Personalized Federated Learning
- rabbitmq的exclusive 排他队列
- 用开源的协同办公OA项目,做一个考勤系统