gpt4 book ai didi

apache-spark - 具有显式 setMaster ("local"的 Spark 作业),通过 YARN 传递给 spark-submit

转载 作者:行者123 更新时间:2023-12-02 00:43:30 25 4
gpt4 key购买 nike

如果我有一个用 setMaster("local") 编译的 Spark 作业 (2.2.0) 如果我用 spark-submit --master yarn 发送那个作业会发生什么 --部署模式集群 ?

我试过了,看起来作业确实在 YARN 集群上打包并执行,而不是在本地执行。

我不清楚的地方:

  • 为什么会这样?根据文档,您在 SparkConf 中设置的内容明确优先于从命令行或通过 spark-submit 传入的内容(请参阅:https://spark.apache.org/docs/latest/configuration.html)。这有什么不同是因为我使用的是 SparkSession.getBuilder 吗?

  • 在代码中保留 setMaster("local") 与删除它相比,是否有任何不太明显的影响?我想知道我所看到的是否类似于在集群内以本地模式运行的作业,而不是正确使用集群资源。

最佳答案

这是因为在 SparkConf.setMaster 之前将您的应用程序提交给 Yarn。

当你使用 --master yarn --deploy-mode cluster 时,Spark 将在你的本地机器上运行它的主要方法并上传 jar 以在 Yarn 上运行。 Yarn 将分配一个容器作为 application master 来运行 Spark 驱动程序,也就是您的代码。 SparkConf.setMaster("local") 在 Yarn 容器中运行,然后创建以本地模式运行的 SparkContext,并且不使用 Yarn 集群资源。

我建议不要在代码中设置 master。只需使用命令行 --masterMASTER env 来指定 Spark master。

关于apache-spark - 具有显式 setMaster ("local"的 Spark 作业),通过 YARN 传递给 spark-submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com