В случае ежедневного пакетного запуска Hive, если существует серьезная неточность данных или при запуске неоптимизированного SQL, это может привести к тому, что задача Hive будет выполняться дольше, чем ожидалось, и в течение длительного времени будет занимать большой объем ресурсов в очереди пула ресурсов. , что приводит к сбою других задач из-за нехватки ресурсов, задерживаемых по обстоятельствам. В этом случае пользователь может ожидать, что задание не удастся выполнить, чтобы гарантировать возможность выполнения последующих заданий. В этой статье в основном описывается, как установить период ожидания задач Hive и связанные с ним параметры. Разумные параметры конфигурации могут уменьшить возникновение вышеуказанных проблем.
В процессе настройки таймаута задачи в основном используются два параметра hive.server2.session.check.interval и hive.server2.idle.operation.timeout. Описания всех соответствующих параметров следующие:
hive.server2.idle.session.timeout
hive.server2.session.check.interval
hive.server2.idle.session.check.operation
hive.server2.idle.operation.timeout
Следующий вариант использования объединяет три значения настройки из приведенного выше примера:
CM
>Hive on Tez
> Конфигурация
> Найдите hive.server2.session.check.interval, значение по умолчанию — 15 минут, минимальное значение — 3 секунды. Как показано ниже, сохраните конфигурацию, а затем перезапустите HiveServer2. Услуга вступает в силу.
Уведомление: hive.server2.session.check.interval Этот параметр необходимо установить на уровне сервиса, через сеанс средний набор Этот параметр не имеет никакого эффекта.
Параметр hive.server2.idle.operation.timeout может передаваться глобально в зависимости от уровня обслуживания. Конфигурация,Как показано ниже,Вы также можете пройти
set hive.server2.idle.operation.timeout=-20000;
Для установки единицей измерения по умолчанию являются миллисекунды.
Уведомление: Этот параметр есть в 7.1.7 SP1 Не во время выполнения раньше В белом списке, как в CDP7.1.7. В версии SP1 при запуске по умолчанию будет сообщаться об ошибке: Ошибка: Error while processing statement: Cannot modify hive.server2.idle.operation.timeout at runtime. It is not in list of params that are allowed to be modified at runtime (state=42000,code=1)。 Подробную информацию о методах обработки см. в документе: https://my.cloudera.com/knowledge/quotError- while-processing-statement-Cannot-modify-a-at?id=313269.
Если интервал hive.server2.session.check.interval установлен на 3 секунды, передайте
set hive.server2.idle.operation.timeout=-2000; (2 секунды)
set hive.server2.idle.operation.timeout=-20000;(20Второй)
Чтобы проверить следующим образом, вы можете обнаружить, что задание, для которого установлено время ожидания 2 секунды, при любых обстоятельствах быстро выдаст исключение Invalid OperationHandle: OperationHandle, в то время как задание, для которого установлено значение 20 секунд, может выполняться нормально.
В журнале HiveServer2 вы можете увидеть следующий отчет об ошибках:
2022-12-01 15:49:03,924 WARN org.apache.hive.service.cli.thrift.ThriftCLIService: [HiveServer2-Handler-Pool: Thread-91]: Error getting operation status:
org.apache.hive.service.cli.HiveSQLException: Invalid OperationHandle: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=3351410c-2137-47b5-b0a6-3324222dc553]
at org.apache.hive.service.cli.operation.OperationManager.getOperation(OperationManager.java:180) ~[hive-service-3.1.3000.7.1.7.1044-1.jar:3.1.3000.7.1.7.1044-1]
at org.apache.hive.service.cli.thrift.ThriftCLIService.getProgressedPercentage(ThriftCLIService.java:489) ~[hive-service-3.1.3000.7.1.7.1044-1.jar:3.1.3000.7.1.7.1044-1]
at org.apache.hive.service.cli.thrift.ThriftCLIService.GetOperationStatus(ThriftCLIService.java:737) [hive-service-3.1.3000.7.1.7.1044-1.jar:3.1.3000.7.1.7.1044-1]
Конфигурация с использованием разумных параметров таймаута,Hive SQL с проблемами существования может быть своевременно отключен. Конечно, существование также должно учитывать нормальное время выполнения задания при настройке параметров.,и возможное время ожидания из-за нехватки ресурсов. Установите разумные таймауты параметров для связанных заданий. Конфигурация,Разумное использование ресурсов,Тем самым повышая общую эффективность работы.