Как справиться с небольшой проблемой файла в потоковой передаче с искрой? - PullRequest
1 голос
/ 10 июня 2019

У меня есть сценарий в моем проекте, где я читаю сообщения темы kafka, используя версию spark-sql-2.4.1.Я могу обработать день, используя структурированную потоковую передачу.Как только данные получены и после обработки мне нужно сохранить данные в соответствующие файлы паркета в хранилище hdfs.

Я могу хранить и читать файлы паркета, у меня было время запуска от 15 секунд до 1 минуты.Эти файлы очень малы по размеру, что приводит к большому количеству файлов.

Эти паркетные файлы должны быть прочитаны последними по запросам кустов.

Итак 1) Работает ли эта стратегия в производственной среде?или это приводит к возникновению каких-либо небольших проблем с файлами позже?

2) Каковы наилучшие практики для обработки / разработки сценариев такого типа, т.е. отраслевого стандарта?

3) Как обычно происходит такое?обрабатываются в производстве?

Спасибо.

1 Ответ

3 голосов
/ 10 июня 2019

У нас тоже была похожая проблема.После большого количества поисков в Google, казалось, что общепринятым способом было написать другую работу, которая часто собирает множество маленьких файлов и записывает их где-то еще в большие, объединенные файлы.Это то, что мы сейчас делаем.

В качестве отступления: в любом случае здесь есть предел тому, что вы можете сделать, поскольку чем больше у вас параллелизма, тем больше число файлов, потому что каждый поток исполнителя записывает в свой собственный файл.,Они никогда не пишут в общий файл.Это похоже на природу зверя, который параллельно обрабатывает.

...