Spark Streaming: избегайте маленьких файлов в HDFS - PullRequest
0 голосов
/ 05 июня 2018

У меня есть приложение Spark Streaming, которое записывает свои выходные данные в HDFS.

Какие меры предосторожности и стратегии можно предпринять, чтобы этот процесс не создавал слишком много мелких файлов и создавал нагрузку на память в HDFS Namenode.Имеет ли Apache Spark какие-либо готовые решения, позволяющие избежать мелких файлов в HDFS.

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

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

0 голосов
/ 06 июня 2018

Вы можете уменьшить количество файлов деталей.По умолчанию спарк генерирует выходные данные в 200 файлах деталей.Вы можете уменьшить количество файлов деталей.

0 голосов
/ 06 июня 2018

Нет.Spark не предоставляет ни одного такого решения.

Что вы можете сделать:

  1. Увеличить интервал между партиями - это ничего не гарантирует - но все же есть более высокий шанс,Хотя компромисс здесь заключается в том, что потоковая передача будет иметь большую задержку .
  2. Управлять ею вручную.Например - для каждой партии вы можете рассчитать размер СДР и накапливать СДР, если они не удовлетворяют вашим требованиям к размеру.Затем вы просто объединяете RDD и записываете на диск.Это непредсказуемо увеличит задержку , но гарантирует эффективное использование пространства .
...