WedX - журнал о программировании и компьютерных науках

искра - приложение возвращает разные результаты в зависимости от разной памяти исполнителя?

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

Проблема заключается в том, что когда я запускаю одно и то же задание на пряже с памятью больше, чем есть в среде, например, кластер имеет 50 ГБ, и я отправляю spark-submit с исполнителем около 60 ГБ и памятью драйвера 4 ГБ. Мои результаты уменьшаются, похоже, что один из разделов данных или задач потерян во время обработки.

driver-memory 4g --executor-memory 4g --num-executors 12

Я также замечаю предупреждающее сообщение о драйвере -

WARN util.Utils: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.debug.maxToStringFields' in SparkEnv.conf. 

но когда я запускаю с ограниченными исполнителями и примером памяти 15 ГБ, это работает, и я получаю точные строки/данные. нет предупреждающего сообщения.

driver-memory 2g --executor-memory 2g --num-executors 4

какие-либо предложения, нам не хватает некоторых настроек в кластере или что-то в этом роде? Обратите внимание, что моя работа успешно завершается в обоих случаях. Я использую искру версии 2.2.

10.08.2018

Ответы:


1

Это бессмысленно (кроме, может быть, для отладки) - план больше, когда задействовано больше исполнителей, и предупреждение состоит в том, что он слишком велик для преобразования в строку. если вам это нужно, вы можете установить spark.debug.maxToStringFields на большее число (как предлагается в предупреждающем сообщении)

10.08.2018
  • меня беспокоит не предупреждающее сообщение. Проблема в том, что раздел данных/задача потеряны. мы получаем меньше строк, когда мы запускаем с большим объемом памяти, тот же код, если мы выполняем с меньшим объемом памяти, работает нормально. 10.08.2018
  • Я не видел такого поведения в spark 2.2 (я видел ошибку в 1.x с похожими симптомами, поэтому были добавлены идентификаторы в именах файлов), но может быть так, что когда Yarn выделяет дополнительные исполнители ) (поскольку вы пытаетесь иметь больше доступной памяти), он каким-то образом получает тот же идентификатор и перезаписывает существующий файл - если это проблема, вы должны увидеть меньше файлов при первом запуске. 10.08.2018
  • я вижу меньше данных на несколько строк меньше данных. 10.08.2018
  • Знаете ли вы, есть ли способ проверить или подтвердить, переопределяется ли тот же идентификатор? 10.08.2018
  • в этом случае у вас будет меньше файлов 11.08.2018
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]