2017-09-07 5 views
0

내 응용 프로그램이 hive-jdbc를 사용하여 하이브 쿼리를 실행하지만 다음 예외가 발생합니다. org.apache.hadoop.security.AccessControlException : 사용 권한이 거부되었습니다.

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) 

하지만 내/tmp를/하이브 SUSER 권한은 왜 권한이 다른

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

입니까?
예외 오류가 발생하는 이유는 무엇입니까?

익명

+0

Shawn, 동일한 오류가 발생하여 해결책을 찾기 위해 몇 시간 동안 검색했습니다. 마지막으로 UID = user_Name을 추가하고 AuthMech = 2로 설정해야 연결 문자열에 누락 된 항목이 있습니다. 그러면 익명의 사용자에 대한 액세스가 거부됨을 쉽게 알 수 있으므로 질문에 오류가 있으면 문제가 해결 될 것입니다. 이것을 원하면 당신을 도울 것입니다. –

답변

0

사용자는 = 당신도 suser 또는 권한이 drwxrwx---로 설정되어

supergroup 그룹의 일부로서 인증되지 않은, 그래서 나는 당신이 다른 검사 방법을 잘 모르겠지만, 사용자 또는 그룹이 액세스 할 수있는 사용자가 없음을 의미합니다.

관련 문제