Как я могу управлять именем названия улья, но сохранить информацию о сцене?

У меня есть несколько запросов на улей, которые моя система выполняет на регулярной основе. Когда вы смотрите на трекер задания, они отображаются как "SELECT field, other_field..... (Stage-1)" и тому подобное. Это не очень полезно для меня, поэтому я добавил:

set mapred.job.name = more helpful name;
к запросу. Теперь я могу отличить их лучше. Однако теперь мои запросы, которые разбиваются на несколько этапов, отображаются как одно и то же имя. То, что мне идеально нравится, - это что-то вроде линии

set mapred.job.name = more helpful name (Stage-%d);
где% d будет заменено номером текущего этапа.
Возможно ли это, и кто-нибудь знает, как?

Ответ 1

Я не уверен, что есть способ реализовать именно то, что вы хотите, но я могу предложить что-то еще.
Вместо использования set mapred.job.name вы можете добавить комментарий в начале запроса с помощью more helpful name следующим образом:
-- this is a more helpful name
SELECT field, other_field ....

Затем в jobtracker вы увидите -- this is a more helpful name ..... (Stage-%d) "

Ответ 3

Я знаю, что это очень поздний ответ, но, если это поможет, дайте мне знать.

Это происходит потому, что HIVE не позволяет устанавливать определенные параметры во время выполнения. Если вы хотите установить его, выполните следующие действия:

  • Войдите в интерфейс Ambari в качестве администратора.
  • Перейдите в конфигурацию улья
  • Откройте пользовательский HiveSite.xml
  • Добавьте следующую пару значений ключа
    КЛЮЧ: hive.security.authorization.sqlstd.confwhitelist.append
    VALUE: mapred.job.name
  • Перезапустите службу поддержки HIVE.

В этой конфигурации вы можете любой пары ключ-значение, для которой вы получаете эту ошибку времени выполнения