-2

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

我的问题是在纱线集群或纱线客户端模式下运行火花流作业是否有意义?(这里不涉及Hadoop)

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

谢谢,

4

2 回答 2

0

当地的[*]

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

纱线客户端

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

纱线簇

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

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

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

于 2018-04-26T07:24:08.767 回答
0

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

所以最好的选择是始终选择 yarn-cluster 以避免在同一主机上使用 yarn-client 提交多个作业时使同一主机过载

于 2018-04-26T15:42:47.987 回答