В ситуации, когда у меня много работы для обработки, но меньшего кластера, могу ли я получить Apache искру, чтобы как-то сгладить работу для меня, чтобы кластер не взорвался из-за нехватки памяти?
Здесь много работы означает больше, чем общий объем доступной памяти.
Ситуация, когда это будет полезно, например, при запуске моего запланированного пакетного задания и по какой-то причине мы есть необычное количество данных для обработки. Это должно быть редким, но все же ожидается. Я не хочу увеличивать размер кластера только из-за этих редких случаев.
В этих редких случаях, как я могу получить Apache Spark, чтобы сгладить рабочую нагрузку, чтобы она соответствовала кластеру и избежать нехватки памяти? Здесь допустимо более длительное время выполнения этого сглаживания.
Если обычным случаем будет то, что объем доступной ОЗУ намного меньше, чем объем данных, которые должны быть обработаны, тогда, конечно, кластер должен быть Эта задача будет обрабатывать файлы, каждый из которых выдает один файл результатов. Каждый файл может быть обработан полностью независимо от других файлов. Каждый файл представляет примерно одинаковую рабочую нагрузку и размер. Практически стандартная работа ETL.
Чтобы понять, какую нагрузку представляет один файл, каждый файл на выделенном 2-ядерном компьютере занимает около 25 минут. Нагрузка зависит от процессора в течение большей части этих 25 минут, за исключением начальной загрузки и окончательной загрузки, которые сравниваются достаточно быстро.
В настоящее время я работаю с циклом над всеми разделами, для которых требуется выполненная работа. Для каждого такого раздела я добавляю все файлы в один список и создаю один RDD из этого списка файлов. В нормальных условиях это работает просто замечательно. Когда я сталкиваюсь с этими редкими случаями, мне не хватает памяти.
Поскольку исходные данные в этом СДР - это очень мало данных (даже в редком случае), то все они попадают в один и тот же раздел , У меня есть ощущение, что это часть моей проблемы, и я должен поместить каждый путь к файлу в отдельный раздел. Мне трудно найти документацию, которая это поддерживает.
Действительно ли я сам должен * l oop просматривать файлы, или Apache Spark может как-то мне в этом помочь? Если так, то как? Моя идея разбиения звучит нормально?