Глядя на инструкции по установке Cloudera, я не вижу упоминания о том, как запускать задания от имени обычных пользователей.
Когда я пытаюсь выполнить пробное задание, я получаю следующее:
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 2 100000
Number of Maps = 2
Samples per Map = 100000
Wrote input for Map #0
Wrote input for Map #1
Starting Job
org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=myuser, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
Одним из решений может быть установка разрешений «/», чтобы разрешить запись всем пользователям.
Еще одно решение, которое я вижу в Интернете, - установить свойство mapreduce.jobtracker.staging.root.dir
но я не уверен, где это установлено: http://getsatisfaction.com/cloudera/topics/unable_to_run_mapreduce_job_in_cdh3_cluster_permission_denied
Я предполагаю, что существует стандартный способ обработки (т.е. не все пользователи, выполняющие задания hadoop, имеют root-доступ, а также не оставляют разрешения корневого широко открытого стандарта HDFS)
Изменить: все еще застрял на этом, но я повторно отправил вопрос в список рассылки Cloudera .. надеюсь, что кто-то там или здесь ответит :) спасибо!
Мне удалось заставить это работать со следующей настройкой:
<configuration>
<property>
<name>mapreduce.jobtracker.staging.root.dir</name>
<value>/user</value>
</property>
#...
</configuration>
Также требуется перезапуск службы отслеживания вакансий (особая благодарность Джеффу в списке рассылки Hadoop за помощь в обнаружении проблемы!)