热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SparkStreaming资源动态申请和动态控制消费速率

2019独角兽企业重金招聘Python工程师标准为什么需要动态?Spark默认情况下粗粒度的,先分配好资源再计算。而SparkStreaming有

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

为什么需要动态?

  1. Spark默认情况下粗粒度的,先分配好资源再计算。而Spark Streaming有高峰值和低峰值,但是他们需要的资源是不一样的,如果按照高峰值的角度的话,就会有大量的资源浪费。
  2. Spark Streaming不断的运行,对资源消耗和管理也是我们要考虑的因素。
  3. Spark Streaming资源动态调整的时候会面临挑战:Spark Streaming是按照Batch Duration运行的,Batch Duration需要很多资源,下一次Batch Duration就不需要那么多资源了,调整资源的时候还没调整完Batch Duration运行就已经过期了。这个时候调整时间间隔。

场景:

  1. 数据量变大,资源很少
  2. 数据量变小,资源很多

直接源码入手:

Spark Streaming资源动态申请 

183811_1Duj_120395.png

184416_xSFr_120395.png

185837_Y8cq_120395.png

185304_YIDJ_120395.png

190342_HLCC_120395.png

定时线程以固定频率来不断的扫描Executor,正在运行的Scheduler是要运行在不同的Executor中,需要动态的增加Executor或者减少Executor ,例如判断一个60秒为时间间隔的Executor一个任务都没有运行,就会把Executor删除掉。怎么会减少Executor,是因为当前应用程序中运行的Executor在Driver中会有数据结构对其保持引用,每次任务调度的时候都会循环遍历Executor的列表,然后查询列表的可用资源,根据这个类中的时钟会不断循环查看是否满足添加或者删除Executor的条件,如果满足添加或者删除的条件就触发Executor进行添加与删除。

190937_ilLN_120395.png

 从Spark Streaming的角度考虑,Spark Streaming要处理的动态资源调整就是Executor的资源动态调整,其最大的挑战是什么?

  Spark Streaming是按照BachDuration的方式运行的,可能这个BachDuration需要很多资源,下一个又不用那么多资源,当前BachDuration的资源还没有等调整完成其运行已经过期了。

二、动态控制消费速率:

     Spark Streaming弹性机制,可以查看流进来的数据是如何处理的,处理的速度之间的关系是否能够来得及进行处理,如果来不及进行处理的话,会动态的进行控制数据流进来的速度。

    Spark Streaming本身有个rate的控制,这个控制一般可以使用手动的方式进行控制调整他的速度,手动控制是需要对Spark Streaming的处理速度有一种感知,根据BachDuration

  流进来的数据进行控制其速度,可以调整BachDuration流入更多的数据或者更少的数据。

经典的论文,有时间了会把论文表达的信息加进来。

 


转:https://my.oschina.net/corleone/blog/685099



推荐阅读
  • 在Java编程中,初始化List集合有多种高效的方法。本文介绍了六种常见的技术,包括使用常规方式、Arrays.asList、Collections.addAll、Java 8的Stream API、双重大括号初始化以及使用List.of。每种方法都有其特定的应用场景和优缺点,开发者可以根据实际需求选择最合适的方式。例如,常规方式通过直接创建ArrayList对象并逐个添加元素,适用于需要动态修改列表的情况;而List.of则提供了一种简洁的不可变列表初始化方式,适合于固定数据集的场景。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • Ansible:自动化运维工具详解
    Ansible 是一款新兴的自动化运维工具,基于 Python 开发,集成了多种运维工具(如 Puppet、CFEngine、Chef、Func 和 Fabric)的优点,实现了批量系统配置、程序部署和命令执行等功能。本文将详细介绍 Ansible 的架构、特性和优势。 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 利用 fopen、fwrite、fread、fseek 和 fclose 实现文件中整型数据的读写操作 ... [详细]
  • 本文详细介绍了在 Android 7.1 系统中调整屏幕分辨率和默认音量设置的方法。针对系统默认音量过大的问题,提供了具体的步骤来降低系统、铃声、媒体和闹钟的默认音量,以提升用户体验。此外,还涵盖了如何通过系统设置或使用第三方工具来优化屏幕分辨率,确保设备显示效果更加清晰和流畅。 ... [详细]
  • Microsoft Visual Studio 2010 简体中文旗舰版安装与下载详细报告
    最近得知MSDN发布了Microsoft Visual Studio 2010简体中文旗舰版,我怀着极大的兴趣进行了下载和安装。本文将详细介绍下载和安装的全过程。如果您拥有MSDN订阅账号,可以通过以下链接访问下载页面:https://msdn.microsoft.com。此外,文中还提供了详细的步骤说明和常见问题的解决方案,帮助用户顺利完成安装。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
author-avatar
ID张蕾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有