2015-08-26 6 views
-1

У меня есть небольшое приложение, которое читает файл с моего локального компьютера и записывает данные в hdfs.AccessControlException в Hadoop для доступа = EXECUTE

Теперь я хочу перечислить файлы, находящиеся в папке hdfs, скажем HadoopTest. Когда я пытаюсь это сделать, я получаю следующее исключение:

org.apache.hadoop.security.AccessControlException: Permission denied: user=rpoornima, access=EXECUTE, inode="/hbase/HadoopTest/Hadoop_File_1.txt":rpoornima:hbase:-rw-r--r-- 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:205) 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:161) 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:128) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:4547) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkTraverse(FSNamesystem.java:4523) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getListingInt(FSNamesystem.java:3312) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getListing(FSNamesystem.java:3289) 
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getListing(NameNodeRpcServer.java:652) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getListing(ClientNamenodeProtocolServerSideTranslatorPB.java:431) 
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44098) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:898) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1693) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1689) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1332) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1687) 

Я не уверен, как решить эту проблему. любезно дайте вам материалы.

ответ

2

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

Как исключение говорит

Permission denied: user=rpoornima, access=EXECUTE, 
inode="/hbase/HadoopTest/Hadoop_File_1.txt":rpoornima:hbase:-rw-r--r--` 

Это означает, что ваш аккаунт rpoornima имеет только -rw-r--r-- разрешение (не выполнить) на файл /hbase/HadoopTest/Hadoop_File_1.txt. Таким образом, вы должны использовать другую полную учетную запись с полномочиями для выполнения.


UPDATE

Если вы хотите, чтобы предоставить доступ к указанному пользователю. Используйте команду chmod.

Чаун

Использование: Hadoop фс -chown [-R] [OWNER] [: [GROUP]] URI [URI]

Изменение владельца файлов. Пользователь должен быть суперпользователем. Дополнительная информация содержится в Руководстве по разрешениям.

Варианты

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

+0

Благодарим за решение. У других пользователей «hdfs» и «root» есть полный доступ. Но не знаете, как получить доступ к папке «HadoopTest» как пользовательский «root» из java-кода. любая идея как получить доступ как другого пользователя? – dove4evr

+0

Исключение указано, что вы используете 'user = rpoornima', который не имеет привилегий в указанном каталоге. Не «корень». – luoluo

+0

Пользователь = rpoornima получает полный доступ, как указано ниже в файле passwd: rpoornima: x: 102: 106 Я выяснил, что каждый раз, когда я пишу новый файл, разрешение сбрасывается на -rw-r-- р--. Поэтому в коде Java, я установить разрешение, как указано ниже: "TXT" \t \t \t \t \t \t \t «путь Path = новый путь ((hdfsurl.append ("/ HBase/HadoopTest/Hadoop_File _" + FileCount +)).нанизывать()); \t \t os = hdfs.create (path); \t \t hdfs.setPermission (путь, новый FsPermission (FsAction.ALL, FsAction.ALL, FsAction.ALL)); После этого файл записывается с разрешением ниже: -rw-RW-rw- 3 rpoornima HBase HadoopTest/Hadoop_File_1.txt – dove4evr

 Смежные вопросы

  • Нет связанных вопросов^_^