如何优化 spark structured streaming app 中执行器实例的数量?

How to optimize number of executor instances in spark structured streaming app?

运行时间

YARN 集群模式

申请

关于 Kafka 主题

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

关于在 spark structured streaming 中设置正确的配置是否有任何指导或建议?
特别是 spark.executor.coresspark.executor.instances 或关于执行者的东西。

spark.executor.cores 设置为 5 或更少通常被认为是 HDFS I/O 吞吐量的最佳选择。您可以在此处阅读更多相关信息(或 google 其他文章): https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/

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

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

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