2016-05-12 76 views
2

我正在創建一個AWS集羣,並且我有一個引導操作來更改spark-defaults.conf。何時運行EMR引導操作

服務器是保持遭到停權說

無法讀取/etc/spark/conf/spark-defaults.conf:如果我跳過這個沒有這樣的文件或目錄

雖然並檢查服務器上的文件是否存在。所以我認爲事情的順序是不正確的。我使用提供的EMR 4.5使用Spark 1.6.1,因此它應該默認安裝。

任何線索?

謝謝!

回答

1

您不應在引導操作中更改Spark配置。相反,您應該在啓動羣集時需要添加的特殊json文件中指定對spark-defaults所做的任何更改。如果使用cli推出,命令應該是這個樣子:

aws --profile MY_PROFILE emr create-cluster \ 
--release-label emr-4.6.0 \ 
--applications Name=Spark Name=Ganglia Name=Zeppelin-Sandbox \ 
--name "Name of my cluster" \ 
--configurations file:///path/to/my/emr-configuration.json \ 
... 
--bootstrap-actions .... 
--step ... 

emr-configuration.json文件,那麼您將更改spark-defaults。一個示例可能是:

[ 
    { 
    "Classification": "capacity-scheduler", 
    "Properties": { 
     "yarn.scheduler.capacity.resource-calculator": "org.apache.hadoop.yarn.util.resource.DominantResourceCalculator" 
    } 
    }, 
    { 
    "Classification": "spark", 
    "Properties": { 
     "maximizeResourceAllocation": "true" 
    } 
    }, 
    { 
    "Classification": "spark-defaults", 
    "Properties": { 
     "spark.dynamicAllocation.enabled": "true", 
     "spark.executor.cores":"7" 
    } 
    } 
] 
+1

不幸的是,EMR JSON配置並未兌現所有的火花配置選項。如果您需要更改諸如spark.driver.extraClassPath或spark.executor.extraClassPath之類的內容,則JSON不允許您這樣做。你如何改變這些選項而不使用引導操作? – Drahkar

+0

@Drahkar我不知道spark.xx.extraClassPath不能通過配置文件設置,但我認爲你仍然可以指定它們作爲你的步驟的選項,如'--steps Name = MyJob,Type = Spark,Args = [ - 主,紗的客戶端, - CONF,spark.driver.extraClassPath = /額外/類/路徑/ ...]'?? –