Spark Performance Issue vs Hive - PullRequest
0 голосов
/ 05 июля 2019

Я работаю над конвейером, который будет работать ежедневно.Он включает в себя объединение двух таблиц, скажем, x & y (примерно 18 МБ и 1,5 ГБ соответственно) и загрузку вывода объединения в финальную таблицу.

Ниже приведены факты об окружающей среде,

Для таблицы x:

  • Размер данных: 18 МБ
  • Количество файлов в разделе: ~ 191
  • тип файла: паркет

Для таблицы y:

  • Размер данных: 1,5 ГБ
  • Количество файлов враздел: ~ 3200
  • тип файла: паркет

Теперь проблема заключается в следующем:

Hive и Spark дают одинаковую производительность (время занимает одно и то же)

Я пробовал разные комбинации ресурсов для работы с искрой.

Например:

  • исполнителей: 50 памяти: 20 ГБ ядер: 5
  • исполнителей: 70 памяти: 20 ГБ ядер: 5
  • исполнителей: 1 память: 20 ГБ ядер: 5

Все три комбинации дают одинаковую производительность.Я не уверен, что мне здесь не хватает.

Я также пытался транслировать небольшую таблицу 'x', чтобы избежать случайного перемешивания при присоединении, но не сильно улучшил производительность.

Одним из ключевых замечаний является:

70% времени выполнения тратится на чтение большой таблицы 'y', и я предполагаю, что это связано с большим количеством файлов на раздел.

Я не уверен, насколько улейдавая ту же производительность.

Просьба предложить.

1 Ответ

0 голосов
/ 05 июля 2019

Я полагаю, вы сравниваете Hive по MR против Spark. Пожалуйста, дайте мне знать, если это не так. Потому что Hive (на тез или спарк) против Spark Sql не будет отличаться значительно с точки зрения производительности.

Я думаю, что главная проблема в том, что слишком много маленьких файлов. Много ресурсов ЦП и времени расходуется на сам ввод / вывод, поэтому вы не можете ощутить вычислительную мощность Spark.

Мой совет - немедленно объединить кадры данных искры после чтения файлов паркета. Пожалуйста, объедините «x» dataframe в один раздел и «y» датафрейм на 6-7 разделов.

После выполнения вышеизложенного выполните объединение (broadcastHashJoin).

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