Выполнить Hive Query с параметрами предложения IN параллельно

У меня есть запрос Hive, как показано ниже:

select a.x as column from table1 a where a.y in (<long comma-separated list of parameters>)
union all
select b.x as column from table2 b where b.y in (<long comma-separated list of parameters>)

Я поставил hive.exec.parallel как true что помогает мне достичь параллелизма между двумя запросами между union all.

Но мой IN Предложение имеет много значений, разделенных запятыми, и каждое значение берется один раз за 1 задание, а затем следующее значение. На самом деле это выполняется последовательно.

Есть ли какой-либо параметр куста, который, если он включен, может помочь мне получать данные параллельно для параметров в IN статья?

В настоящее время решение, которое я имею, состоит в том, чтобы запустить запрос выбора с = несколько раз вместо одного IN пункт.

1 ответ

Нет необходимости читать одни и те же данные много раз в отдельных запросах для достижения лучшего параллелизма. Настройте правильный маппер и параллелизм редуктора для того же.

Прежде всего, включите PPD с векторизацией, используйте CBO и Tez:

SET hive.optimize.ppd=true;
SET hive.optimize.ppd.storage=true;
SET hive.vectorized.execution.enabled=true;
SET hive.vectorized.execution.reduce.enabled = true;
SET hive.cbo.enable=true;
set hive.stats.autogather=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.partition.stats=true;
set hive.execution.engine=tez;
SET hive.stats.fetch.column.stats=true;
SET hive.tez.auto.reducer.parallelism=true; 

Пример настроек для Mappers на Tez:

set tez.grouping.max-size=67108864;
set tez.grouping.min-size=32000000;

Пример настроек для Mappers, если вы решили работать на MR вместо Tez:

set mapreduce.input.fileinputformat.split.minsize=16777216; -- 16 MB
set mapreduce.input.fileinputformat.split.minsize=1073741824; -- 1 GB

- пример настроек для редукторов:

set hive.exec.reducers.bytes.per.reducer=67108864; --decrease this to increase the number of reducers

Поиграйте с этими настройками. Критерии успеха - больше картографов / редукторов, и ваша карта и этапы сокращения работают быстрее.

Прочитайте эту статью для лучшего понимания того, как настроить Tez: https://community.hortonworks.com/articles/14309/demystify-tez-tuning-step-by-step.html

Другие вопросы по тегам