Je me demande pourquoi ce travail:DME Spark travaillant dans une principale java, mais pas dans une fonction java
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();
}
}
et pourquoi cela ne:
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();
}
}
Je travaille sur Spark avec EMR. La seule différence que j'ai trouvé entre ces deux projets est le fait que l'un ait la partie d'étincelle écrite dans le principal et l'autre non. J'ai lancé les deux comme application étincelle dans EMR avec l'argument - classe JavaSparkPi .
Voici le défaut de 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
et il est celui avec succès:
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