Ich frage mich, warum funktionierts:EMR Funken arbeiten in einem Java-main, aber nicht in einer Java-Funktion
public final class JavaSparkPi {
public static void main(String[] args) throws Exception {
SparkConf sparkConf = new SparkConf().setMaster("yarn-cluster").setAppName("mySparkApp");
JavaSparkContext jsc = new JavaSparkContext(sparkConf);
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < 10 ; i++){
list.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(list)
.map(s->2*s)
.map(s->5*s);
int weirdStuff= dataSet.reduce((a, b) -> (a + b)/2);
System.out.println("stuff is " + weirdStuff);
jsc.stop();
}
}
und warum dies nicht:
public final class JavaSparkPi {
private void startWorkingOnMicroSpark() {
SparkConf sparkConf = new SparkConf().setMaster("yarn-cluster").setAppName("mySparkApp");
JavaSparkContext jsc = new JavaSparkContext(sparkConf);
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < 10 ; i++){
list.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(list)
.map(s->2*s)
.map(s->5*s);
int weirdStuff = dataSet.reduce((a, b) -> (a + b)/2);
System.out.println("weirdStuff is " + weirdStuff);
jsc.stop();
}
public static void main(String[] args) throws Exception {
JavaSparkPi jsp = new JavaSparkPi();
jsp.startWorkingOnMicroSpark();
}
}
Ich arbeite an Funken mit EMR. Der einzige Unterschied, den ich zwischen diesen beiden Projekten gefunden habe, ist die Tatsache, dass man den Funkenanteil in der Hauptsache geschrieben hat und den anderen nicht. Ich startete beide als Spark-App in EMR mit dem - Klasse JavaSparkPi Argument. Hier
ist das Versagen statut:
Statut :FAILED
Raison :
Fichier journal :s3://mynewbucket/Logs/j-3AKSZXK7FKMX6/steps/s-2MT0SB910U3TE/stderr.gz
Détails:Exception in thread "main" org.apache.spark.SparkException: Application application_1501228129826_0003 finished with failed status
Emplacement JAR : command-runner.jar
Classe principale : Aucun
Arguments : spark-submit --deploy-mode cluster --class JavaSparkPi s3://mynewbucket/Code/SparkAWS.jar
Action sur échec : Continuer
und es ist die erfolgreichste:
Emplacement JAR : command-runner.jar
Classe principale : Aucun
Arguments : spark-submit --deploy-mode cluster --class JavaSparkPi
s3://mynewbucket/Code/SparkAWS.jar
Action sur échec : Continuer