Я пытаюсь найти подходящий размер оборудования для моей работы в Spark. Насколько я понимаю, увеличение количества машин может помочь ускорить мою работу, учитывая тот факт, что в моей работе нет сложной операции действия и, следовательно, возможно небольшое количество вычислений в программе драйвера . Тем не менее, я наблюдаю, что скорость выполнения задания снижается при добавлении ресурсов в Spark. Я могу воспроизвести этот эффект, используя следующую простую работу:
Выполнение простого преобразования «фильтр» в СДР, это выглядит следующим образом:
JavaRDD<String> filteredRDD = rdd.filter(new Function<String, Boolean>() {
public Boolean call(String s) {
String filter = "FILTER_STRING";
return s.indexOf(filter) > 0 ? true : false;
}
Проблема масштабирования проявляется, когда я увеличиваю количество машин в кластере от 4 до 8. Вот некоторые подробности об окружающей среде:
Есть какие-нибудь идеи, почему я не получаю ту степень масштабируемости, которую ожидаю от Spark?