Пример потоковой передачи Hadoop на CentOS с python — разрешение запрещено на /mapred/local/taskTracker

Мне удалось настроить пример потоковой передачи с помощью python mapper & reducer. Папка mapred находится в /mapred/local/taskTracker, и пользователи root, и пользователи mapred имеют право собственности на эту папку и подпапки.

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

Я заметил, что, хотя он предоставил разрешение + rwx для mapred/local/taskTracker и всех его подкаталогов, когда mapreduce создает временные папки для этого задания, папки не имеют rwx для всех пользователей ... и, следовательно, я получаю ошибка отказа в разрешении

Я искал темы форума по этому поводу, и хотя есть темы, в которых упоминается та же ошибка ... я не смог найти ответов с решениями.

любая помощь будет принята с благодарностью


person user2145098    schedule 07.03.2013    source источник


Ответы (1)


Я предполагаю, что вы запускаете демоны Hadoop от имени пользователя root. В этом случае права доступа к вновь создаваемым файлам определяются umask пользователя root. Однако вы не должны менять umask на root.

Если вы хотите запускать задания и кластеры MapReduce от имени разных пользователей, лучше запустить демоны Hadoop от имени пользователя hadoop, а задания MapReduce от имени пользователя mapreduce. Однако оба пользователя должны принадлежать к одной и той же группе, то есть hadoop. Кроме того, umask для пользователя hadoop должен быть установлен соответствующим образом.

person harpun    schedule 07.03.2013
comment
привет harpun, это звучит логично ... позвольте мне попробовать эти варианты. Однако, поскольку я запускаю его через cloudera, мне нужно выяснить, как запускать потоки от имени пользователя hadoop. все равно спасибо за подсказки - person user2145098; 08.03.2013