我尝试在Java应用程序中“运行” Spark作业宽度,进行搜索,发现了以下两种方法:ClientsArguments
和SparkLauncher
。
有人可以向我解释两者之间的区别吗?启动和提交作业/应用程序之间的区别Spark?
谢谢。
最佳答案
SparkLauncher只是spark-submit
的包装库,它将SparkLauncher
代码转换为spark-submit
脚本,然后触发作业。
该机制与spark-submit
脚本相同,如果您查看SparkLauncher的源代码,它将使用ProcessBuilder
构造外壳。
如果要使用SparkLauncher
,则需要指定$JAVA_HOME
,$SPRAK_HOME
和其他基本参数。 SparkLauncher
有一些限制,运行SparkLauncher
的计算机必须具有$JAVA_HOME
和$SPARK_HOME
(Spark库),用于SparkLauncher
定位脚本和相关的依赖项。对于某些云环境(如CloudFoundry等)来说,这是不可能的。
您可以假定SparkLauncher
等于spark-submit
脚本,可以选择客户端模式或主模式,本地模式或yarn模式。ClientsArguments
是YARN脚本的类,仅适用于yarn-mode。