2016-05-12 12 views
2

Ich erstelle einen AWS-Cluster und ich habe eine Bootstrap-Aktion, um Spark-defaults.conf zu ändern.Wenn EMR Bootstrap-Aktionen ausgeführt werden

Server halten beendet immer sagen

nicht lesen /etc/spark/conf/spark-defaults.conf kann: Datei oder Verzeichnis

Obwohl, wenn ich diese überspringen und überprüfen Sie auf dem Server die Dateien existiert. Ich nehme also an, dass die Reihenfolge der Dinge nicht korrekt ist. Ich benutze Spark 1.6.1 von bereitgestellten EMR 4.5, so dass es standardmäßig installiert sein sollte.

Irgendwelche Hinweise?

Danke!

Antwort

1

Sie sollten Spark-Konfigurationen in einer Bootstrap-Aktion nicht ändern. Stattdessen sollten Sie alle Änderungen an spark-defaults in einer speziellen json-Datei angeben, die Sie beim Start des Clusters hinzufügen müssen. Wenn Sie die cli starten verwenden, sollte der Befehl wie folgt aussehen:

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 ... 

In der emr-configuration.json Datei, die Sie dann Ihre Änderungen zu spark-defaults gesetzt. Ein Beispiel könnte sein:

[ 
    { 
    "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

Leider berücksichtigt die EMR JSON-Konfiguration nicht alle Spark-Konfigurationsoptionen. Wenn Sie Dinge wie spark.driver.extraClassPath oder spark.executor.extraClassPath ändern müssen, können Sie dies im JSON nicht tun. Wie würden Sie diese Optionen ändern, ohne Bootstrap-Aktionen zu verwenden? – Drahkar

+0

@Drahkar Ich war mir nicht bewusst, dass die spark.xx.extraClassPath nicht über die Konfigurationsdatei gesetzt werden kann, aber ich nehme an, dass Sie sie immer noch als Optionen für Ihren Schritt angeben können, wie '--Stufen Name = MyJob, Type = Spark, Args = [- Master, Garn-Client, - Konf, spark.driver.ExtraClassPath =/extra/Klasse/Pfad/...] '?? –

Verwandte Themen