Как распараллелить запрос в Apache Hive для (маленького) набора данных - PullRequest
1 голос
/ 24 февраля 2011

Я тестирую последний Hive на части моего набора данных. Это только пара ГБ файлов журнала, которые я читаю через пользовательский SerDe.

Когда я запускаю простые запросы Group By (4 задания MR), я получаю журналы, такие как

  • карта: 100%
  • уменьшить: 0%
  • карта: 85%
  • уменьшение: 0%
  • карта: 86%
  • уменьшение: 0%

все время, используя только одно ядро ​​на 8-ядерном сервере. Вид отходов ...

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

Я ожидаю, что, поскольку мой набор данных разбит на разделы (=> разные файлы), по крайней мере некоторые из этапов сокращения карты могут выполняться параллельно для этих файлов.

Мое понимание неверно? Есть ли конкретный способ написания запросов?

Спасибо

1 Ответ

2 голосов
/ 29 марта 2011

Если вы ничего не делаете, кроме простой GROUP BY, единственная реальная обработка - это сравнение, которое не так сложно. Тем не менее, сколько картографов у вас работает? Средства отслеживания задач не будут работать параллельно. Скорее, hasoop банки на нескольких задачах, работающих для параллелизации. Поэтому, если вы выполняете только одну задачу карты на узел, вы ничего не увидите.

Другая возможность состоит в том, что поскольку вы выполняете GROUP BY, вы связаны с IO, а не с процессором, поэтому нет необходимости вводить в него несколько ядер.

...