#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%. Таким образом, другая часть ресурсов может быть использована для небольших заданий.