3

运行

YARN集群模式

应用

  • Spark 结构化流
  • 从 Kafka 主题中读取数据

关于 Kafka 话题

  • 1 个具有 4 个分区的主题 - 现在。(可以更改分区数)
  • 每 1 秒在主题中添加最多 2000 条记录。

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

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

4

1 回答 1

3

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

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

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

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

于 2019-04-14T13:53:19.723 回答