При помощи динамической аллокации ресурсов в Spark можно добиться того, чтобы задача получала дополнительные ресурсы, если таковые имеются в свободном пуле. Таким образом, иногда, можно использовать всю мощь кластера и быстрее проводить вычисления. В докладе я расскажу, как динамическая аллокация ресурсов помогла сделать возможной работу 30-40 студентов в условиях приближающегося дедлайна по лабораторным работам и жить всем в счастье.
1 of 34
Download to read offline
More Related Content
Динамическая аллокация ресурсов или как жить в условиях общежития?
14. Динамическая
аллокация
Другой вариант: включить динамическую
аллокацию. Тогда Spark будет выдавать под
тяжелые джобы больше ресурсов, когда кластер
свободен.
🔥
spark.dynamicAllocation.enabled=true
spark.shuffle.service.enabled=true
17. Динамическая
аллокация
Супер! Ресурсы динамически выдаются, но…
не всегда забираются обратно 😭
spark.dynamicAllocation.executorIdleTimeout=60s
spark.dynamicAllocation.cachedExecutorIdleTimeout=600s
20. Итог
1. Более эффективное использование ресурсов
даже при большом количестве одновременных
юзеров.
2. Более равномерная загрузка кластера за счёт
правильных стимулов.
26. Обновление до 2.1.1
Запускаем. Ошибка.
java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
😡
Нужно скачать версию jersey 1.17.1 и добавить в
тот самый архив на HDFS.
27. Обновление до 2.1.1
Новая ошибка! 😩
org.apache.spark.SparkException: Yarn application has already ended! It might have been
killed or unable to launch application master
28. Обновление до 2.1.1
Новая ошибка! 😩
org.apache.spark.SparkException: Yarn application has already ended! It might have been
killed or unable to launch application master
В логах application’а нашли такое:
/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar
29. Обновление до 2.1.1
Новая ошибка! 😩
org.apache.spark.SparkException: Yarn application has already ended! It might have been
killed or unable to launch application master
Решение. Прописать параметр в настройках YARN
hdp.version=2.5.3.0-37
30. Обновление до 2.1.1
И вот оно занятие. Но в какой-то момент ресурсы
перестают выдаваться опять! 🤦♂️
31. Обновление до 2.1.1
И вот оно занятие. Но в какой-то момент ресурсы
перестают выдаваться опять! 🤦♂️
Оказалось, что нужно изменить параметр в
настройках YARN:
yarn.scheduler.capacity.maximum-am-resource-percent=1.0