2017-05-27 38 views
0

是否有可能以編程方式知道Spark程序在哪種模式下運行?例如,無論是在yarn-cluster還是yarn-client模式下運行?如何以編程方式知道應用程序是否在使用YARN的客戶端或集羣部署模式下運行?

+0

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 –

+1

那麼它的棄用,但仍然可以使用它。例如,現在不是使用--master紗線羣集,而是編寫--master yarn --deploy-mode羣集。 – pythonic

回答

3

如果使用SparkSession必須訪問SparkContext例如首先可以使用的SparkContext

val sc: SparkContext = ??? 
sc.deployMode 

deployMode方法:

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

你當然可以用master電話結合起來,得到全圖:

sc.master 
相關問題