0
是否有可能以編程方式知道Spark程序在哪種模式下運行?例如,無論是在yarn-cluster
還是yarn-client
模式下運行?如何以編程方式知道應用程序是否在使用YARN的客戶端或集羣部署模式下運行?
是否有可能以編程方式知道Spark程序在哪種模式下運行?例如,無論是在yarn-cluster
還是yarn-client
模式下運行?如何以編程方式知道應用程序是否在使用YARN的客戶端或集羣部署模式下運行?
如果使用SparkSession
必須訪問SparkContext
例如首先可以使用的SparkContext
val sc: SparkContext = ???
sc.deployMode
deployMode
方法:
val spark: SparkSession = ???
spark.sparkContext.deployMode
你當然可以用master
電話結合起來,得到全圖:
sc.master
I認爲它是在Spark 2之前,並且沒有'yarn-client'和'yarn-cluster' - > https://github.com/apache/spark/blob/master/resource-managers/yarn/src/main /scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala#L34-L35 –
那麼它的棄用,但仍然可以使用它。例如,現在不是使用--master紗線羣集,而是編寫--master yarn --deploy-mode羣集。 – pythonic