Привет, я новичок в Apache Spark и немного в этом разбираюсь ... Ценю любую помощь по ситуации ниже.
Шаг 1: Я запускаю автономный / локальный экземпляр Spark, который создается во время выполнения из моей сборки maven jar.
Шаг 2: Я наблюдаю за папкой для файлов .gz (gunzip) и читаю их, используя код javaSparkContext.textFile (logFilePath, partitionCount) .map ((последняя строка строки)) в Java.
использование .persist (StorageLevel.MEMORY_AND_DISK_SER ());
Шаг 3: Все работает нормально, никаких проблем с обработкой, я застрял в ситуации (порядок обработки), которая описана ниже, рассмотрим 50 файлов gunzip (.gz) разного размера от 500 КБ до 250 МБ.
Категория 1: 10 файлов Файл 0f 500KB
Категория 2: 10 файлов - 1,5 МБ
Категория 3: 10 файлов - 8 МБ
Файл категории 4: 10 - 108 МБ
Файл категории 5: 10 - 248 МБ
Случай / Ситуация: при обработке Файла все файлы 5 категорий по отдельности, тогда производительность хорошая. но однажды поместите файл всех 5 категорий в одну папку и обработайте их, тогда производительность фляги будет адской.
Используемое аппаратное обеспечение - оперативная память 8core / 32GB
отсюда получается, что файлы разных размеров хранятся вместе и обрабатываются случайным образом. производительность снижается почти 30 раз.
немного статистики:
при отдельной обработке файла категории: среднее время составляет 20 минут на файл. но при случайной обработке одного и того же файла время занимает более 8 часов.
Любая помощь будет высоко ценится