Отказано в доступе: user = basi, access = WRITE, inode = "/": - PullRequest
0 голосов
/ 05 мая 2019

Я более свежий в hadoop и pig.i установил pig в моем локальном пользователе в ubuntu и hadoop в качестве hduser.Pig отлично работает в локальном режиме для небольших наборов данных. Запустил pig в режиме mapreduce и попытался реализовать wordcount, но получение разрешения запрещеноошибка, как показано ниже.Вызывается: org.apache.hadoop.ipc.RemoteException (org.apache.hadoop.security.AccessControlException): Отказано в доступе: user = basi, доступ = WRITE, inode = "/": hduser: супергруппа: drwxr-xr-x

запустил hadoop в psudomode statrted pig для локального пользователя: pig -x mapreduce

   grunt> A = LOAD '/Wordcount.txt' AS (line:Chararray);
   grunt> B = FOREACH A GENERATE FLATTEN(TOKENIZE(line)) AS word;
   grunt> grouped = group B by word;
   grunt> wc = FOREACH grouped GENERATE group, COUNT(B);
   grunt> DUMP wc

/ Wordcount.txt - файл в формате hdfs

Ответы [ 3 ]

1 голос
/ 05 мая 2019

Непонятно, как вы загрузили /Wordcount.txt в корневую папку, но ошибка говорит о том, что вы пытаетесь записать в корневой каталог, что возможно только как учетная запись hduser, а не basi, ваша локальный пользователь.

Один вариант - переключиться на другого пользователя.

В противном случае, не используйте корень HDFS в качестве полигона для всех файлов; используйте выделенный каталог /user

0 голосов
/ 17 мая 2019

В Pig команда DUMP сначала записывает свои выходные данные в / tmp / temp ...., а затем клиент читает из нее. Я предполагаю, что у вашего кластера нет / tmp. Если это так, попробуйте создать каталог / tmp (обычно с разрешения 1777).

(Отредактировано: Читая ответы других, я думаю, что тот, о котором / пользователь имеет смысл. Без него вы даже не сможете отправлять какие-либо задания.)

0 голосов
/ 14 мая 2019

действуйте как показано ниже

chmod 777 /Wordcount.txt

chmod изменить разрешение текстового файла как rwxrwxrwx для группы владельцев и других соответственно

, а затем укажите полное местоположение текстового файла в команде загрузки, как показано ниже

grunt> A = LOAD '/directory/abc/Wordcount.txt' AS (line:Chararray);

затем снова запустите код ...

надеется, что это поможет вам.

...