как Hive на Tez определяет номера редукторов?

Как определить количество редукторов? Похоже, это как-то связано с предложением where. Я использую следующий SQL:

  1. без предикатов
SELELT ip, port, count(1) AS cnt
FROM tb_ipaddr
GROUP BY ip, port;

В этой работе 252 редуктора.

  1. с одним предикатом
SELECT ip, port, count(1) AS cnt
FROM tb_ipaddr
WHERE port IS NOT NULL
GROUP BY ip, port;

В этой работе 84 редуктора.

  1. добавив еще один предикат, у задания будет 24 редуктора.

Почему количество редукторов становится на треть с каждым добавленным предикатом?

версия платформы: hive 2.3.7 и tez 0.9.2


person luke    schedule 15.11.2020    source источник
comment
Количество редукторов основано на предполагаемом размере данных после фильтрации (на основе размера файлов и статистики) + конфигурации bites.per.reducers. Прочтите это: stackoverflow.com/a/62409087/2700344 и это: stackoverflow.com/a/55449237/2700344   -  person leftjoin    schedule 16.11.2020