如何使用 YARN 以编程方式知道应用程序是在客户端还是集群部署模式下运行?

How to know programmatically whether application runs in client or cluster deploy mode using YARN?

是否可以通过编程方式知道 Spark 程序处于哪种模式运行?比如是yarn-cluster中的运行还是yarn-client模式?

您可以使用 SparkContext

deployMode 方法
val sc: SparkContext = ???
sc.deployMode

如果您使用 SparkSession,您必须首先访问 SparkContext 个实例:

val spark: SparkSession = ???
spark.sparkContext.deployMode

您当然可以将其与 master 调用结合使用,以获得全貌:

sc.master