Улей Map-Join, конфигурация мистери - PullRequest
0 голосов
/ 16 февраля 2019

Может ли кто-нибудь четко объяснить, в чем разница между

hive.auto.convert.join

и

hive.auto.convert.join.noconditionaltask

параметрами конфигурации?

Также эти соответствующие параметры размера:

hive.mapjoin.smalltable.filesize

и

hive.auto.convert.join.noconditionaltask.size

Мое наблюдение заключается в том, что при работе в Tez Map-Join работает, когда для hive.auto.convert.join.noconditionaltask.size установлено достаточно высокое значение, даже если hive.mapjoin.smalltable.filesize установлено меньше размерамаленький столик.

Зачем нам нужны

hive.auto.convert.join и hive.auto.convert.join.noconditionaltask?

Документация Apache очень запутанная.

1 Ответ

0 голосов
/ 16 февраля 2019

Эти параметры используются для принятия решения о том, когда использовать Map Join против Common join в улье, что в конечном итоге влияет на производительность запросов в конце.

Map join используется, когда одна из таблиц соединенияОн достаточно мал, чтобы поместиться в памяти, поэтому он очень быстрый.Вот объяснение всех параметров:

hive.auto.convert.join

Когда этот параметр установлен на true, Hive автоматически проверит, больше ли размер файла таблицы меньше, чемзначение, указанное hive.mapjoin.smalltable.filesize, если оно больше, чем это значение, запрос выполняется через общее соединение.После включения автоматического преобразования объединений нет необходимости указывать подсказки объединения карт в запросе.

hive.auto.convert.join.noconditionaltask

Когда три или более таблиц участвуют вjoin и

hive.auto.convert.join = true - Hive генерирует три или более объединений на стороне карты с предположением, что все таблицы имеют меньший размер.

hive.auto.convert.join.noconditionaltask = true, куст объединит три или более объединений на стороне карты в одно объединение на стороне карты, если размер таблицы n-1 меньше 10 МБ.Здесь размер определяется как hive.auto.convert.join.noconditionaltask.size.

hive.mapjoin.smalltable.filesize

Этот параметр в основном позволяет оптимизатору определить определение маленькой таблицы в вашей системе.Это значение определяет, какая таблица для вас мала, и затем, когда запрос выполняется на основе этого значения, он определяет, может ли соединение преобразовать в map join.

hive.auto.convert.join.noconditionaltask.size

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

Вот очень хорошая ссылка с пояснениями, которая включает описание всех 4 параметров с примером:

http://www.openkb.info/2016/01/difference-between-hivemapjoinsmalltabl.html

...