Size: a a a

2021 April 27

A

Aleksandra in Data Engineers
Например, у нас сабмитятся порядка 30 джобсов параллельно через scala futures, джобсы читают и пишут данные в hdfs. периодически в некоторых джобсах возникает ошибка JavaIO Filesystem closed (идёт от Hadoop DFSClient). То есть, как будто бы в середине таска кто-то вызывает fsClient.close(), и, соответственно, текущий таск падает. Может ли это Быть из-за параллелизма?
источник

t

tenKe in Data Engineers
если запись идет в один путь, то может быть
источник

A

Aleksandra in Data Engineers
Один путь - это один файл? Или одна file system?
источник

t

tenKe in Data Engineers
не, один путь в someDf.write.parquet(...)
источник

GP

Grigory Pomadchin in Data Engineers
а что значит сабмитися поролельно через фучи?
источник

GP

Grigory Pomadchin in Data Engineers
сабмит имеется ввиду спарк сабмит
источник

D

Den in Data Engineers
Думаю тут от юскейса зависит тк шедулинг делается не по джобе а по таскам, иногда имеет смысл выделить фиксированные ресурсы вместо динамического распределения
источник

GP

Grigory Pomadchin in Data Engineers
или имеется ввиду что у вас драйвер и сабмит в этом случае будет просто редьюс нескольких тасок на драйвер асинхронно
источник

GP

Grigory Pomadchin in Data Engineers
что есть сабмит на спарк короче тут
источник

A

Aleksandra in Data Engineers
Грубо говоря, в каждой future инициализируется SparkSession через getOrCreate()и вызывается отдельно одна джоба  (df.write). Причём df в каждом future разный. По идее без параллелизации (если просто по порядку написать их в scala) эти джобы будут выполняться последовательно, хотя в принципе их можно выполнять параллельно
источник

GP

Grigory Pomadchin in Data Engineers
понятно, тогда можно ж одну сессию глобально оставить и не инициалировазть через геткриейт в каждой (т.к. семантически тоже самое будет)

да так можно делать; но вот верно @tenKe заметил и это нормально делать пока ресурсы на кластере есть (в целом он прост заскедулит таски если нет ресурсов и надо будет дождаться)

а что конкретно за JavaIO Filesystem closed?
источник

A

Aleksandra in Data Engineers
Точно, спасибо
источник

A

Aleksandra in Data Engineers
У нас cloudera , периодически возникает ошибка в приложениях spark на Yarn и Hadoop : FetchFailedException : failed to fetch shuffle block. И вроде как она появляется из-за filesystem closed. Причём не всегда это одно и то же приложение, которое падает. Единственный найденный воркэраунд - ребутить кластер cloudera. Хватает примерно недели на две, потом снова возникает эта ошибка. Завтра смогу скинуть более подробный текст ошибок
источник

РВ

Рябуша Владимир... in Data Engineers
@testudinateklev привет Стас!!!))))
источник

ИК

Иван Калининский... in Data Engineers
Очень многие джобы в рамках приложения мы запускаем именно так. Джобы условно независимые, записывают свои данные в разные папки, содержимое папок потом перемещается (после обработки, на драйвере вызывается fileSystem.rename()), сессия используется одна, количество джобов в каждый момент времени ограничено. Используем только FIFO scheduling, FAIR не применяем. Тоже клаудера. Ошибок с файловой системой никогда не было.

Ошибка «failed to fetch shuffle block», как мне кажется, возникает из-за того, что на некоторых нодах возникают проблемы с локальной файловой системой. Надо смотреть, не остаётся ли на нодах лишних процессов и как yarn настроен. Подробнее подсказать не могу

Могу кинуть ссылку на сниппет в скасти, как сделано ограничение количества запускаемых джобов. Но у нас были проблемы, только когда их создавались сотни одновременно, поэтому и решили ограничивать
источник

A

Anton Kovalenko in Data Engineers
😄
источник

AS

Aleksey Semjonich in Data Engineers
Подскажите рабочий пример конфигураций для yarn-site.xml, mapred-site.xml. Для реализации задачи в HIVE.
источник

A

Aleksandra in Data Engineers
О сниппет интересует) Спасибо, будем смотреть дальше
источник

AS

Aleksey Semjonich in Data Engineers
Конфигурации для hadoop,
источник

GP

Grigory Pomadchin in Data Engineers
согалсен с @KaiNie_R ну тут или с фс проблемы или с оперативкой (оом замаскированный например)
может что течет еще конечно
источник