2016-05-19 7 views
1

Ich versuche, einen Stapelprozess in Spark auf DC/OS auf AWS auszuführen. Für jeden Batch-Prozess habe ich einige spezifische Parameter, die ich sende, wenn ich eine Submission erzeuge (zum Beispiel für welche Benutzer den Batch-Prozess durchführen soll).Spark-Job im DC/OS-Cluster auf AWS

Ich habe ein Spark-Cluster auf DC/OS, mit einem Master und 3 private Knoten.

Ich habe eine application.conf Datei erstellt und in S3 hochgeladen und die Berechtigungen für den Zugriff auf diese Datei aktiviert.

Mein Funke einreichen Befehl sieht wie folgt aus:

DCOs Funkenlauf --submit-args = '- Dspark.mesos.coarse = true --driver-Klasse-Pfad https://path_to_the_folder_root_where_is_the_file --conf spark.driver .extraJavaOptions = -Dconfig.file = application.conf --conf spark.executor.extraJavaOptions = -Dconfig.file = application.conf --Klasse class_name jar_location_on_S3'

Und ich den Fehler, die Datei job.properties wird nicht gefunden:

Ausnahme im Thread "main" com.typesafe.config.ConfigException $ Missing: Keine Konfigurationseinstellung für den Schlüssel 'wattio-batch' unter com.typesafe.config.impl.SimpleConfig.findKey (SimpleConfig.java:124) gefunden bei com.typesafe.config.impl.SimpleConfig.find (SimpleConfig.java:145) bei com.typesafe.config.impl.SimpleConfig.find (SimpleConfig.java:159) bei com.typesafe.config.impl.SimpleConfig .find (SimpleConfig.java:164) bei com.typesafe.config.impl.SimpleConfig.getObject (SimpleConfig.java:218) bei com.typesafe.config.impl.SimpleConfig.getConfig (SimpleConfig.java:224) unter com.typesafe.config.impl.SimpleConfig.getConfig (SimpleConfig.java:33) bei com.enerbyte.spark.jobs.wattiobatch.WattioBatchJob $ .main (WattioBa tchJob.scala: 31) bei com.enerbyte.spark.jobs.wattiobatch.WattioBatchJob.main (WattioBatchJob.scala) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl .java-: 62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Method.java:498) bei org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$ runMain (SparkSubmit.scala: 786) bei org.apache.spark.deploy.SparkSubmit $ .doRunMain $ 1 (SparkSubmit.scala: 183) bei org.apache.spark .deploy.SparkSubmit $ .submit (SparkSubmit.scala: 208) bei org.apache.spark.deploy.SparkSubmit $ .main (SparkSubmit.scala: 123) bei org.apache.spark.deploy.SparkSubmit.main (SparkSubmit.scala)

Wie dies richtig eingestellt? Obwohl einer der privaten Slaves den Treiber ausführt, hat er Zugriff auf das Internet (kann er zu S3 wechseln und die conf-Datei herunterladen)?

Danke

Antwort

0

ich nicht gelungen conf Datei von Funken zu senden Befehl vorlegen, aber was habe ich zu hart Code die Position application.conf Datei zu Beginn meines Programms mit:

System.setProperty("config.url", "https://s3_location/application.conf") ConfigFactory.invalidateCaches()

Auf diese Weise konnte das Programm die Datei application.conf jedes Mal beim Start lesen.