有两种部署模式可用于在YARN上启动Spark应用程序。在yarn-cluster模式下,Spark驱动程序在集群上由YARN管理的应用程序主进程中运行,客户端可以在启动应用程序后离开。在yarn-client模式下,驱动程序在客户端进程中运行,而应用程序主进程仅用于向YARN请求资源。
在此,我只能理解的区别是哪个地方的驱动程序在运行,但我无法理解哪个运行得更快。莫尔沃弗:
spark-shell应该用于交互式查询,它需要在yarn-client模式下运行,以便运行的机器充当驱动程序。
对于spark-submit,您将作业提交到集群,然后任务在集群中运行。通常情况下,您将在集群模式下运行,以便YARN可以将驱动程序分配给集群上具有可用资源的合适节点。
一些命令(如。collect())将所有数据发送到驱动程序节点,这可能会导致驱动程序节点在集群内还是在集群外的机器上(例如,用户的笔记本电脑)之间存在显著的性能差异。
TL;DR:在Spark独立集群中,客户端和集群部署模式之间有什么区别?如何设置应用程序运行的模式? 我们有一个带有三台机器的Spark独立集群,它们都带有Spark 1.6.1: 主机,也是使用运行应用程序的地方 2台相同的工作机 2)如何使用选择应用程序将运行在哪个上?
我有以下情况: 我在一家大公司工作。 我们有一个EMR集群,其中Spark/Hadoop堆栈运行在Yarn上。 我可以SSH到集群的主节点,从那里我可以创建Spark shell或spark-submit作业到Spark集群,没有任何问题。 但是,我希望在我公司的服务器上运行Spark client,因为我们所有的代码库都位于那里,因此我有能力在该服务器上进行主动开发,因为我可以git克隆并推送到
/usr/local/spark-1.2.1-bin-hadoop2.4/bin/--类com.fst.firststep.aggregator.firststepmessageProcessor--主spark://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:7077--部署模式集群--监督文件:///home/xyz/sparkstreaming-0.0.1
我们在所有节点上都有6台机器、hdfs和纱线服务,1个主节点和6个从节点。我们在3台机器上安装Spark,1台主机器,3个工人(1个节点主工人)。我们知道,当主spark://[主机]:[端口]时,作业将仅运行3个节点,使用独立模式。当使用spark submit--master Thread提交一个jar时,它会使用所有6个服务器cpu和内存,还是只使用3个spark worker节点机器?如果
我认为传递自定义exitcode是不可能的,因为驱动程序传递的任何exitcode都将转换为yarn状态,而yarn将把任何失败的exitcode转换为1或失败。
一直在努力解决使用Spark YARN处理多个配置文件以及在集群和客户端模式之间切换的问题。 在我的应用程序中,我需要加载两个配置文件: 应用程序配置 环境配置 示例-application.conf: env.conf: 代码: 有什么建议如何设置,以便我可以轻松地交换集群和客户端模式? 谢谢!