当前位置: 首页 > 知识库问答 >
问题:

如何优化火花结构化流媒体应用程序中的执行程序实例数量?

令狐和裕
2023-03-14

纱线簇模式

  • Spark结构化流
  • 从Kafka主题读取数据
  • 1个主题,4个分区-目前为止。(分区数可以更改)
  • 每1秒最多增加2000条主题记录

我发现 Kafka 主题分区的数量与 spark 执行器的数量 (1:1) 相匹配。
所以,就我而言,到目前为止,我所知道的是,我认为4个火花执行器是解决方案。
但是我担心数据吞吐量 - 可以确保2000 rec / sec吗?

是否有任何关于在火花结构化流中设置正确配置的指导或建议?
特别是火花执行器核心火花执行器实例或有关执行器的东西。

共有1个答案

桓智敏
2023-03-14

将< code > spark . executor . cores 设置为5或更少通常被认为是HDFS I/O吞吐量的最佳值。你可以在这里阅读更多相关内容(或谷歌其他文章):https://blog . cloud era . com/blog/2015/03/how-to-tune-your-Apache-spark-jobs-part-2/

每个Kafka分区都匹配一个火花核心,而不是执行器(一个火花核心可以有多个Kafka分区,但每个Kafka分区恰好有一个核心)。

决定您需要的确切数量取决于许多其他因素,比如您的应用程序流(例如,如果您没有进行任何洗牌,则总核数应该正好是您的Kafka分区)、内存容量和需求等。

您可以使用这些配置,并使用spark指标来决定您的应用程序是否正在处理吞吐量。

 类似资料:
  • 我以前能够运行Kafka结构流编程。但是突然间,我所有的结构流python程序都失败了,出现了一个错误。我从Spark网站上拿了基本的Kafka结构流式编程,也以同样的错误失败。 spark-submit--packages org.apache.spark:spark-sql-kafka-0-102.11:2.2.0c:\users\ranjith.gangam\pycharmprojects\

  • 我正在使用Spark结构化流媒体;我的DataFrame具有以下架构 如何使用Parquet格式执行writeStream并写入数据(包含zoneId、deviceId、TimesInclast;除日期外的所有内容)并按日期对数据进行分区?我尝试了以下代码,但partition by子句不起作用

  • 我是spark新手,有一个简单的spark应用程序,使用spark SQL/hiveContext: 从hive表中选择数据(10亿行) 做一些过滤,聚合,包括row_number窗口函数来选择第一行,分组,计数()和最大()等。 将结果写入HBase(数亿行) 我提交的作业运行它在纱线集群(100个执行者),它很慢,当我在火花UI中查看DAG可视化时,似乎只有蜂巢表扫描任务并行运行,其余的步骤#

  • 本文向大家介绍从应用程序角度进行优化相关面试题,主要包含被问及从应用程序角度进行优化时的应答技巧和注意事项,需要的朋友参考一下 解答: (1) 避免不必要的reduce任务 如果mapreduce程序中reduce是不必要的,那么我们可以在map中处理数据, Reducer设置为0。这样避免了多余的reduce任务。 (2) 为job添加一个Combiner 为job添加一个combiner可以大

  • 作者:sky-admin 概述 2019年下半年,为了将微信钱包/支付宝九宫格入口的滴滴出行迁移为小程序,团队对小程序进行了大量的功能升级与补全。在整个过程中也遇到并克服了一系列问题和挑战,其中包体积问题尤为突出。接下来全面介绍一下滴滴出行小程序在体积控制方面做的努力与沉淀。 背景 微信对小程序包体积的要求是总体积不得超过12M,主包及单个分包体积不得超过2M。支付宝对于小程序包体积的计算方式虽和

  • 我正在读取来自Apache Kafka的json消息,然后使用Apache Spark在Azure blob存储中编写拼花文件。我使用方法partitionBy将这些拼花地板文件写入嵌套文件夹中。我的代码如下: 我注意到火花应用程序会产生空的镶木地板文件。这对我来说是一个瓶颈,因为我在hive导入过程中读取了这些镶木地板文件,并且抛出了一个异常,即这不是镶木地板文件(长度太小:0) 一般来说,我想