2017-09-07 1 views
0

Meine Anwendung führt eine Hive-Abfrage mithilfe von Hive-JDBC, aber ich bekomme die folgende Ausnahme.org.apache.hadoop.security.AccessControlException: Berechtigung verweigert

Failed to open new session: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE, inode="/tmp/hive-suser":suser:supergroup:drwxrwx--- 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:319) 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:259) 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:205) 
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190) 
    at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1698) 
    at org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp.getFileInfo(FSDirStatAndListingOp.java:108) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:3861) 
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:1006) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:843) 
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043) 

Aber meine/tmp/hive-suser Erlaubnis ist

"drwxrwxrwx - suser supergroup 0 2017-09-07 21:58 /tmp/hive-suser" 

Warum ist die Erlaubnis anders?
Warum sollte ein Ausnahmefehler auftreten?

+0

Shawn zugreifen, hatte ich den gleichen Fehler und suche nach Stunden, um eine Lösung zu finden. Schließlich bekam ich, was ich in meiner Verbindungszeichenfolge fehlen musste, UID = user_Name hinzufügen und AuthMech = 2 setzen. Das wird Ihren Fehler hoffentlich beheben, wie in Ihrer Frage kann ich leicht einsehen, dass der Zugriff für anonyme Benutzer verweigert wird. In der Hoffnung, das wird dir helfen. –

Antwort

0

user = anonym

Sie sind nicht entweder als suser oder einen Teil der supergroup Gruppe

authentifiziert Die Berechtigungen auf drwxrwx--- gesetzt sind, so bin ich nicht sicher, wie man das sonst überprüft, aber es bedeutet niemand, aber der Benutzer oder die Gruppe kann auf