Как работа приложения распространяется на рабочие узлы в Apache Spark

apache-spark distributed-computing worker

665 просмотра

1 ответ

44 Репутация автора

У меня есть приложение, которое читает файл, делает некоторые вычисления и генерирует выходной файл в машине с драйвером. Теперь, когда я запускаю его с рабом на машине A, это занимает 6 минут. Если я добавляю еще одного ведомого на машине B в тот же кластер и запускаю драйверную программу, это займет 13 минут (при том, что немногие маршруты не найдены для хоста B). Я считаю, что это связано с задержкой в ​​сети. Минимальное время для 2 работников всегда выше, чем для 1 работника. Кроме того, я думаю, что работа этого приложения не выполняется распределенным образом. Оба раба делают всю работу независимо друг от друга. Оба ведомых устройства считывают входной файл целиком, создают RDD и отправляют драйверу для вывода. Тогда мне интересно, где распределенные вычисления, которыми известен Apache Spark? У меня есть небольшая программа для подсчета слов, которая выполняет только вычисления и не требует файлового ввода-вывода, если я запускаю это с огромным файлом с несколькими рабочими узлами, я вижу, что время выполнения уменьшается с добавлением рабочего. Я хочу знать, читает ли каждый работник полный файл и создает RDD, и в программе не выполняется распределенная работа?

Большое спасибо .

--edit PFA снимок экрана с различными рабочими узлами. Соответствующий цветной прямоугольник показывает результат выполнения. Мне интересно, почему добавление большего количества рабочих задерживает время выполнения. Я не вижу в журнале ни одного маршрута для размещения исключения во времени, но почему он не приходит, когда я удаляю одного из работников. Есть указатели? -- Заранее спасибо.

Автор: summary Источник Размещён: 18.07.2016 05:20

Ответы (1)


1 плюс

21143 Репутация автора

Решение

Вы взяли небольшой набор данных, поместили его в файловую систему, которая не распределялась, и провели его через механизм, разработанный для работы с сотнями узлов - что может пойти не так?

координация процессов на многих компьютерах требует большой координации, отправки данных туда-сюда, сериализации и десериализации и т. д. Если вы не можете запустить решение любым другим способом, накладные расходы приемлемы, но если вы запускаете его на чем-то маленьком, вы более зависит от накладных расходов, чем время, необходимое для решения проблемы

Автор: Arnon Rotem-Gal-Oz Размещён: 18.07.2016 06:28
Вопросы из категории :
32x32