Выполнить 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