Oozie на YARN — oozie не может выдавать себя за Hadoop

Я пытаюсь использовать Oozie из Java, чтобы начать работу в кластере Hadoop. У меня очень ограниченный опыт работы с Oozie на Hadoop 1, и теперь я изо всех сил пытаюсь попробовать то же самое на YARN.

Мне дали машину, которая не принадлежит кластеру, поэтому, когда я пытаюсь начать свою работу, я получаю следующее исключение:

E0501 : E0501: Could not perform authorization operation, User: oozie is not allowed to impersonate hadoop

Почему так и что делать?

Я немного читал о свойствах основного сайта, которые необходимо установить

<property>
  <name>hadoop.proxyuser.oozie.groups</name>
  <value>users</value>
</property>

<property>
  <name>hadoop.proxyuser.oozie.hosts</name>
  <value>master</value>
</property>

Кажется, что это проблема? Должен ли я связаться с людьми, ответственными за кластер, чтобы исправить это?

Могут ли возникнуть проблемы из-за того, что я использую тот же код для YARN, что и для Hadoop 1? Следует ли что-то изменить? Например, я устанавливаю nameNode и jobTracker в workflow.xml, должен ли существовать jobTracker, поскольку теперь есть ResourceManager? Я установил адрес ResourceManager, но оставил имя свойства как jobTracker, может ли это быть ошибкой?

Может быть, я должен также упомянуть, что Амбари используется...


person Kobe-Wan Kenobi    schedule 18.06.2015    source источник


Ответы (2)


Привет, пожалуйста, обновите core-site.xml

<property>
  <name>hadoop.proxyuser.hadoop.groups</name>
  <value>*</value>
</property>

<property>
  <name>hadoop.proxyuser.hadoop.hosts</name>
  <value>*</value>
</property>

а адрес jobTracker - это адрес Resourcemananger, который не будет иметь место. после обновления файла core-site.xml он заработает.

person karthik    schedule 19.06.2015
comment
Спасибо за ваш ответ, но разве это не позволит любому пользователю отправлять рабочие процессы с помощью Oozie? Я всего лишь один из пользователей Oozie, я не думаю, что администраторы кластера разрешат эту настройку... Есть ли способ выдать себя за другого пользователя при запуске рабочего процесса из кода Java? - person Kobe-Wan Kenobi; 19.06.2015
comment
вы пытаетесь отправить задание в пользователь Hadoop! затем вы можете добавить пользователя hadoop к пользователю oozie. здесь hadoop — это OOZIE_SERVER_HOSTNAME, поэтому мы должны добавить пользователя. - person karthik; 19.06.2015
comment
Так вы говорите, что в конфигурации должно быть ‹name›hadoop.proxyuser.hadoop.hosts‹/name› ‹value›*‹/value›? Можно ли выполнить -doAs из java-кода? Какое свойство указать? - person Kobe-Wan Kenobi; 19.06.2015
comment
да, потому что Hadoop — это пользователь, который отправляет задания oozie. другое решение состоит в том, чтобы установить JAVA_PROPERTY как -Duser.name=hadoop в %oozie_home%/bin/oozie.sh(bat). для -doAS мы можем добавить пользователя hadoop в группу oozie. - person karthik; 19.06.2015

Причина: Причина этого типа ошибки: вы запускаете сервер oozie как пользователь hadoop, но определяете oozie как пользователя-прокси в файле core-site.xml.

Решение:

измените владельца каталога установки oozie на пользователя oozie и запустите сервер oozie от имени пользователя oozie, и проблема будет решена.

person Rakib    schedule 17.10.2016