Дорогих братий Apache Спарк энтузиастовApache Spark - Как избежать неудачи медленных задач
Я недавно стартовал проект боковой линии с целью превратить пару компьютеров ODROID XU4 в автономном Спарке кластер.
После настройки кластера я столкнулся с проблемой, которая, по-видимому, специфична для гетерогенных многопроцессорных процессоров. Задачи исполнителей Spark выполняются очень медленно на XU4 при использовании всех 8 процессоров. Причина, о которой упоминается в комментарии к моему сообщению ниже, заключается в том, что Spark не ждет, когда исполнители будут выпущены на медленных процессорах.
Одно из решений состоят в использовании меньшего количества ядер исполнителя и установить сродство CPU не использовать маленькие процессоры. Это, однако, не идеальное решение.
Есть ли способ попросить Спарка подождать немного дольше для обратной связи от более медленных исполнителей? Очевидно, что ожидание слишком долго будет отрицательно влиять на производительность. Положительный эффект использования всех сердечников должен, однако, сбалансировать отрицательный эффект.
Заранее благодарим за любую помощь!
Отличная находка @claireware. Я применил настройки и получаю гораздо лучшую производительность даже при использовании 8 ядер. Однако, похоже, 2 - 3 является самым безопасным номером для использования. – TJVR
@TJVR Использование большего количества ядер использует больше накладных расходов RAM, а на плате 2GB XU4 это может быть значительным. Если вы работаете с большим набором данных, я нашел, что лучше всего вернуться на 1 ядро, чтобы для вычислений было доступно больше ОЗУ. Тем не менее, я сделал 2-3 ядра для небольших наборов данных. – kamprath