Как контролировать количество контейнеров в Hive-On-Tez - PullRequest
0 голосов
/ 03 августа 2020

Я новичок в использовании движка Tez. Я выполняю запросы куста на движке Tez, и кажется, что запрос использует все доступные ресурсы. Я хотел бы знать, есть ли способ контролировать количество запущенных контейнеров. Например, как мы контролируем в Spark с помощью конфигураций --executor-cores и --num-executors.

Я искал и не смог найти ничего конкретного. Кроме того, я не хочу различать его через очередь (поскольку я запускаю его на EMR с параметрами масштабирования и определение масштабирования на основе нескольких очередей, усложняет настройку).

Обновление 1: с информацией о вершинах

        VERTICES      MODE        STATUS  TOTAL  COMPLETED  RUNNING  PENDING  FAILED  KILLED
----------------------------------------------------------------------------------------------
Map 1            container       RUNNING     17          0       11        6       0       0
----------------------------------------------------------------------------------------------

Приведенный выше запрос запускает 1 вершину, в которой 11 задач выполняются параллельно (с использованием всех 11 ресурсов кластера). Я бы хотел контролировать количество одновременно выполняемых задач в вершине (в этом примере от 11 до 3).

1 Ответ

0 голосов
/ 03 августа 2020

Настройки для запросов небольших наборов данных:

set hive.vectorized.execution.enabled=true;
set hive.vectorized.execution.reduce.enabled=true;
set hive.exec.parallel=true;
set hive.auto.convert.join=true;
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
set hive.exec.compress.output=true;
set hive.exec.compress.intermediate=true;
set hive.tez.container.size=10240;
set hive.tez.java.opts=-Xmx8192m;
set tez.runtime.io.sort.mb=4096;
set tez.grouping.min-size=16777216;
set tez.grouping.max-size=1073741824; 
set tez.grouping.split-count=8;
set hive.exec.reducers.bytes.per.reducer=256000000;
hive.exec.reducers.max=10;
set hive.tez.auto.reducer.parallelism = true;
set tez.runtime.unordered.output.buffer.size-mb=1024;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

- конфигурации для больших наборов данных:

set hive.execution.engine=tez;
set hive.vectorized.execution.enabled=true;
set hive.vectorized.execution.reduce.enabled=true;
set hive.exec.parallel=true;
set hive.auto.convert.join=true;
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
set hive.exec.compress.output=true;
set hive.exec.compress.intermediate=true;
set hive.tez.container.size=10240;
set hive.tez.java.opts=-Xmx8192m;
set tez.runtime.io.sort.mb=4096;
set tez.runtime.unordered.output.buffer.size-mb=1024;
set tez.grouping.min-size=1073741824;
set tez.grouping.max-size=1073741824;
set tez.grouping.split-count=16;
set hive.exec.reducers.bytes.per.reducer=512000000;
hive.exec.reducers.max=10;
set hive.tez.auto.reducer.parallelism = true;
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;

Примечание. Некоторые из упомянутых конфигураций могут не поддерживаться из-за вашего улья или Версии Tez, а также разрешения вашей платформы.

...