【问题标题】:Kafka Spark Streaming卡夫卡火花流
【发布时间】:2018-09-15 11:44:56
【问题描述】:

我正在尝试构建 Kafka 并触发流式传输用例。其中,Spark Streaming 正在使用来自 Kafka 的流。我们正在增强流并将增强的流存储到一些目标系统中。

我的问题是,在 yarn-cluster 或 yarn-client 模式下运行 spark 流作业有意义吗? (这里不涉及Hadoop)

我认为 Spark 流式作业应该只运行本地模式,但另一个问题是如何提高 Spark 流式作业的性能。

谢谢,

【问题讨论】:

  • 您的用例是什么?数据量?有很多参数需要考虑。如果您计划从 Kafka 读取数据,请运行一些扩充或 SQL 聚合,每个用例都有不同的配置参数来提高 Spark Streaming 的性能。

标签: apache-spark apache-kafka spark-streaming spark-streaming-kafka


【解决方案1】:

不同之处在于 yarn-client,您将强制 spark 作业选择运行 spark-submit 的主机作为驱动程序,因为在 yarn-cluster 中,每次运行时选择的主机都不相同它

因此,如果您要使用 yarn-client 在同一主机上提交多个作业,最好始终选择 yarn-cluster 以避免同一主机过载

【讨论】:

    【解决方案2】:

    本地[*]

    这是特定于在本地模式下运行作业 通常我们使用它来执行 POC 和非常小的数据。 您可以调试作业以了解每行代码的工作方式。 但是,您需要注意,由于作业在您的本地运行,您无法充分利用 sparks 分布式架构。

    纱线客户端

    您的驱动程序正在纱线客户端上运行,您可以在其中键入命令以提交 spark 应用程序。但是,任务仍然在 Executors 上执行。

    纱线簇

    在集群模式下,Spark驱动运行在集群上由YARN管理的应用主进程中,客户端启动应用后即可离开。这是运行 spark 作业的最佳方式,可以从集群管理器提供的优势中受益

    我希望这能让您清楚地了解如何部署 Spark 作业。

    事实上,Spark 为您提供了一个非常简洁的文档,通过示例解释了各种部署策略。 https://spark.apache.org/docs/latest/running-on-yarn.html

    【讨论】:

      猜你喜欢
      • 2016-08-03
      • 2018-08-13
      • 2018-02-24
      • 2023-03-19
      • 2018-08-15
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多