Установите приоритет улья для отдельного запроса/ подключения

#python #hive

Вопрос:

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

Можно ли установить приоритет или ресурсы vcpu для отдельного подключения?

Является ли установка « yarn.nodemanager.resource.cpu-vcores » или « mapred.job.priority » в конфигурации решением?

 configuration = {
    "mapred.job.priority": 'LOW',
    "yarn.nodemanager.resource.cpu-vcores": 2
}
# configuration={}

con = hive.connect(ip, port=10000, auth=auth, kerberos_service_name='hive', database=db_name, configuration=configuration)
 

Если да, то как я могу исправить It is not in list of params that are allowed to be modified at runtime ошибку?

Спасибо

Комментарии:

1. Не могли бы вы, пожалуйста, добавить — mem_limit=300000000 ? это ограничит каждое соединение.

2. @Кошик Рой , Это бросает It is not in list of params that are allowed to be modified at runtime

Ответ №1:

Поскольку вы напрямую подключаетесь к Hive, кажется, что значение hive.security.authorization.sqlstd.confwhitelist.append в ваших настройках неверно или строго и не позволяет устанавливать ваши переменные во время выполнения.

Решение описано здесь здесь. Пример hiveserver2.xml значения со значениями в регулярном выражении:

 <property>
    <name>hive.security.authorization.sqlstd.confwhitelist.append</name>
    <value>mapred.*|hive.*|mapreduce.*|spark.*</value>
</property>
<property>
    <name>hive.security.authorization.sqlstd.confwhitelist</name>
    <value>mapred.*|hive.*|mapreduce.*|spark.*</value>
</property>
 

Комментарии:

1. спасибо за ответ. К подписанному изданию, вы бы предпочли установить mapred.job.priority , yarn.nodemanager.resource.cpu-vcores или mem_limit ?

2. Я думаю, что приоритет работы влияет только на задания, которые находятся в очереди до начала работы. Поэтому я бы посмотрел на общий объем ресурсов процессора и памяти и установил для длительной работы определенную долю этого. Например, 50%. Таким образом, другая часть ресурсов может быть использована для небольших заданий.