Я создаю искровой кластер с ведущим и двумя подчиненными устройствами (один из подчиненного и ведущего находится на одном компьютере). Я изменяю пример wordcount, чтобы он мог выводить некоторое сообщение когда вызывается mapToPair(). Я подчиняю его хозяину. Но только один рабочий имеет выход в stdout. Означает ли это, что только одна работа выполняет эту задачу? У каждого моего работника есть одно ядро. Я пытаюсь сделать 1000 кусочков в textFile(), но все равно не работает. Как заставить обоих рабочих выполнять задания? Я ошибаюсь?Почему мои задачи выполняются только одним рабочим в Spark-кластере
SparkConf sparkConf = new SparkConf().setAppName("ORSIFTask").setMaster("spark://192.168.0.110:7077");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
ctx.addJar("/home/hadoop/ont-1.0-SNAPSHOT.jar");
JavaRDD<String> lines = ctx.textFile("hdfs://192.168.0.110:9000/features4.data",2).cache();
JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
@Override
public Iterable<String> call(String s) {
return Arrays.asList(SPACE.split(s));
}
});
JavaPairRDD<String, String> ones = words.mapToPair(new PairFunction<String, String, String>() {
@Override
public Tuple2<String, String> call(String s) throws OWLOntologyCreationException {
System.out.println("map:"+s);
return new Tuple2<String, String>(s, "thing");
}
});
JavaPairRDD<String, String> counts = ones.reduceByKey(new Function2<String, String,String>() {
@Override
public String call(String i1, String i2) {
System.out.println("reduce:"+i1);
return i1;
}
});
List<Tuple2<String, String>> output = counts.collect();
Можете ли вы вывести вывод для файла $ cat $ SPARK_HOME/conf/slaves – gonephishing