Порядок обработки отдельных файлов Spark снижает производительность - PullRequest
0 голосов
/ 29 июня 2018

Привет, я новичок в 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 часов.

Любая помощь будет высоко ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...