2017-11-28 10 views
2

Ich wollte durch diese Apache Spark documentation, und es wird erwähnt, dass:Festlegen von Umgebungsvariablen in Spark-Cluster-Modus

Wenn Funken auf GARN in cluster-Modus ausgeführt wird, Umgebungsvariablen Bedarf eingestellt werden, mit der spark.yarn.appMasterEnv.[EnvironmentVariableName] Eigenschaft in Ihre conf/spark-defaults.conf Datei.

Ich verwende meinen EMR-Cluster in der AWS-Datenpipeline. Ich wollte wissen, wo ich diese Conf-Datei bearbeiten muss. Außerdem, wenn ich meine eigene benutzerdefinierte conf-Datei erstelle und sie als Teil von --configurations (in der Spark-Submit-Datei) festlege, löst sie dann meinen Anwendungsfall?

Antwort

0

Eine Möglichkeit, dies zu tun, ist die folgende: (Der schwierige Teil ist, dass Sie die Umgebungsvariablen auf beiden Testamentsvollstrecker und Treiberparameter benötigen, um Setup)

spark-submit \ 
--driver-memory 2g \ 
--executor-memory 4g \ 
--conf spark.executor.instances=4 \ 
--conf spark.driver.extraJavaOptions="-DENV_KEY=ENV_VALUE" \ 
--conf spark.executor.extraJavaOptions="-DENV_KEY=ENV_VALUE" \ 
--master yarn \ 
--deploy-mode cluster\ 
--class com.industry.class.name \ 
    assembly-jar.jar 

Ich habe es in EMR getestet und Client Modus sollte aber auch im Cluster-Modus funktionieren.

+0

Es sollte in diesem Fall eine JVM-Eigenschaft sein, keine Umgebungsvariable? Oder fehlt mir etwas? –

+0

Sie haben Recht. Meine Antwort deckt den Fall für die JVM-Eigenschaften ab. In diesem Fall sollten die 'spark.yarn.appMasterEnv. [EnvironmentVariableName]' und 'spark.executorEnv. [EnvironmentVariableName]' für den Treiber bzw. die Executoren verwendet werden. – Zouzias

Verwandte Themen