如何在spark结构化流媒体应用程序中优化执行程序实例的数量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在spark结构化流媒体应用程序中优化执行程序实例的数量?相关的知识,希望对你有一定的参考价值。
Runtime
YARN群集模式
Application
- Spark结构化流媒体
- 从Kafka主题中读取数据
About Kafka topic
- 1个主题,包含4个分区 - 现在。 (分区数可以更改)
- 每1秒在主题中添加最多2000条记录。
我发现Kafka主题分区的数量与spark执行器的数量(1:1)相匹配。
所以,就我而言,直到现在我所知道的,4个火花执行者是我认为的解决方案。
但我担心数据吞吐量 - 可以确保2000 rec / sec?
是否有关于在spark结构流中设置正确配置的指导或建议?
尤其是spark.executor.cores
,spark.executor.instances
或者关于遗嘱执行人的事情。
答案
将spark.executor.cores
设置为5或更低通常被认为是HDFS I / O吞吐量最佳的。你可以在这里阅读更多相关信息(或谷歌其他文章):https://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/
每个Kafka分区都匹配一个火花核心,而不是执行者(一个火花核心可以有多个Kafka分区,但每个Kafka分区只有一个核心)。
确定所需的确切数字取决于许多其他内容,例如您的应用程序流(例如,如果您没有进行任何随机播放,则总核心数应该是您的Kafka分区),内存容量和要求等。
您可以使用配置并使用spark指标来确定您的应用程序是否正在处理吞吐量。
以上是关于如何在spark结构化流媒体应用程序中优化执行程序实例的数量?的主要内容,如果未能解决你的问题,请参考以下文章