2016-03-09 66 views
1

我有簡單的火花應用程序,從配置文件讀取主:理解火花--master

new SparkConf() 
    .setMaster(config.getString(SPARK_MASTER)) 
    .setAppName(config.getString(SPARK_APPNAME)) 

如下什麼時候會發生不適與運行我的應用程序:

spark-submit --class <main class> --master yarn <my jar> 

是我的主人將被覆蓋?

我更喜歡讓主人以標準方式提供,所以我不需要在我的配置中維護它,但那麼我怎麼才能直接從IDEA運行這個工作?這不是我的應用參數,而是spark-submit參數。

只是爲了澄清我的期望的最終產品應該:
在集羣中使用--master紗運行時將使用此配置
從IDEA運行時將運行本地[*]

回答

2
  1. 不要將主設置爲您的代碼。
  2. 在生產中,您可以使用​​的選項--master,它會告訴您哪個主人使用(在您的情況下紗線)。在spark-defaults.conf文件中,spark.master的值也會執行該作業(優先級爲--master,然後是配置文件中的屬性)
  3. 在IDEA中......我在Eclipse中知道,您可以將VM參數傳遞給例如運行配置-Dspark.master=local[*]https://stackoverflow.com/a/24481688/1314742)。 在IDEA中,我認爲它沒有太大的不同,你可以檢查here添加虛擬機選項
+0

工作就像魅力,謝謝 –