Каковы преимущества установки "hive.exec.parallel" в false в Hive?

Я узнал, что когда hive.exec.parallel установлено в true в hive i.e

set hive.exec.parallel=true;

тогда независимые задачи в запросе могут выполняться параллельно.

Благодаря Qubole для этого: hive parallel execution

Есть ли какие-либо преимущества при установке этого параметра в false? Я буду перебирать себя здесь: Очевидно, по возможности, вы хотели бы запускать вещи параллельно и иметь большую пропускную способность. Почему кто-то установил этот параметр в false - есть ли и недостатки?

Ответ 1

Это просто параметр, потому что, когда он появился, было неясно, насколько он стабилен, и поэтому вы должны быть в состоянии отключить его. Как только достаточное количество людей попробовали его и нашли стабильным, по умолчанию установлено значение true: https://issues.apache.org/jira/browse/HIVE-1033

В настоящее время нет реального недостатка.

Ответ 2

Mayank, это свойство также имеет преимущества с некоторым состоянием звезды. Я хочу сказать, что у Hive есть функция блокировки базы данных, а несколько запросов, запущенных в этой базе данных.

Например -
У вас есть сложный запрос с несколькими этапами работа в одной базе данных, где свойство Parallel может увеличить вашу но он также создаст " LOCK" на базе данных, которая может остановить другие процессы, которые работают в одной базе данных на время его собственного исполнения.

Недавно я столкнулся с этой проблемой и решил сделать это свойство " FALSE".
Надеюсь, этот ответ поможет вам понять, в каком сценарии мы должны сделать это ложным.

Ответ 3

По моему опыту, единственным недостатком является использование ресурсов. Если у вас ограниченные ресурсы, может быть лучше, если запросы будут выполняться серийно. Когда запросы выполняются параллельно, один запрос может одновременно управлять несколькими заданиями, что может привести к голоду в кластере ресурсов. Если вам не нужна скорость и у вас есть кластер с большой рабочей нагрузкой, может быть лучше, если все будет работать серийно.