我试图建立Kafka和Spark流用例。在这方面,Spark流是消费流从Kafka。我们正在增强流并将增强的流存储到某个目标系统中。我的问题是,在Yarn集群或Yarn客户机模式下运行spark流作业有意义吗(这里不涉及hadoop)我认为spark流作业应该只运行本地模式,但另一个问题是如何提高spark流作业的性能。谢谢,
ctehm74n1#
本地[*]这是特定于在本地模式下运行作业的,通常我们使用它在非常小的数据上执行poc。您可以调试作业以了解每行代码的工作方式。但是,您需要意识到,由于作业是在本地运行的,因此无法充分利用sparks分布式体系结构。Yarn客户您的驱动程序正在yarn客户机上运行,您可以在该客户机上键入提交spark应用程序的命令。但是,任务仍然在执行者上执行。Yarn团在集群模式下,spark驱动程序在集群上由yarn管理的应用程序主进程内运行,客户机可以在启动应用程序后离开。这是运行spark作业的最佳方式,可以从集群管理器提供的优势中获益我希望这能让你清楚地了解如何部署你的spark工作。实际上,spark为您提供了一个非常清晰的文档,用示例解释了各种部署策略。https://spark.apache.org/docs/latest/running-on-yarn.html
i1icjdpr2#
不同之处在于,对于yarn客户机,您将强制spark作业选择运行spark submit的主机作为驱动程序,因为在yarn集群中,每次运行spark submit时,选择的主机都不相同因此,最好的选择是总是选择Yarn集群,以避免过载相同的主机,如果你要提交多个作业在同一主机与Yarn客户端
2条答案
按热度按时间ctehm74n1#
本地[*]
这是特定于在本地模式下运行作业的,通常我们使用它在非常小的数据上执行poc。您可以调试作业以了解每行代码的工作方式。但是,您需要意识到,由于作业是在本地运行的,因此无法充分利用sparks分布式体系结构。
Yarn客户
您的驱动程序正在yarn客户机上运行,您可以在该客户机上键入提交spark应用程序的命令。但是,任务仍然在执行者上执行。
Yarn团
在集群模式下,spark驱动程序在集群上由yarn管理的应用程序主进程内运行,客户机可以在启动应用程序后离开。这是运行spark作业的最佳方式,可以从集群管理器提供的优势中获益
我希望这能让你清楚地了解如何部署你的spark工作。
实际上,spark为您提供了一个非常清晰的文档,用示例解释了各种部署策略。https://spark.apache.org/docs/latest/running-on-yarn.html
i1icjdpr2#
不同之处在于,对于yarn客户机,您将强制spark作业选择运行spark submit的主机作为驱动程序,因为在yarn集群中,每次运行spark submit时,选择的主机都不相同
因此,最好的选择是总是选择Yarn集群,以避免过载相同的主机,如果你要提交多个作业在同一主机与Yarn客户端