2017-01-17 4 views
0

Apache 드릴 (분산 모드)을 통해 hdfs 클러스터에있는 쪽모락 파일을 쿼리하려고합니다. 내가 /user/tj/ 폴더에있는 샘플 파일 region.parquet이있는 하둡 FS에서사용 권한 오류 | Apach 드릴 쿼리 | HDFS

{ 
    "type": "file", 
    "enabled": true, 
    "connection": "hdfs://<my-name-node-host>:8020", 
    "config": null, 
    "workspaces": { 
    "root": { 
     "location": "/", 
     "writable": true, 
     "defaultInputFormat": null 
    } 
    }, 
    "formats": { 
    "json": { 
     "type": "json", 
     "extensions": [ 
     "json" 
     ] 
    }, 
    "parquet": { 
     "type": "parquet" 
    } 
    } 
} 

: 나는 다음과 같은 구성를 포함 'HDFS'라는 이름의 새로운 스토리지 플러그인을 만들었습니다. 기본적으로 소유자 및 그룹은 hdfs:hdfs이며, 계속 유지하고자합니다.

하지만 다음 SQL 쿼리를 통해 Apache 드릴 UI에서 쿼리하려고 할 때 : SELECT * FROM hdfs.

org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: RemoteException: Permission denied: user=, access=EXECUTE, inode="/user/tj/region.parquet/.drill.parquet_metadata":hdfs:hdfs:-rw-r--r-- 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:1827) at org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp.getFileInfo(FSDirStatAndListingOp.java:108) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:3972) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:1130) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:851) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2313) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2309) 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:1724) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2307) [Error Id: 24bf0cf0-0181-4c72-97ee-4b4eb98771bf on :31010]

가 어떻게 아파치 드릴을 사용하여 하둡 클러스터 파일을 조회하려면이 권한 문제를 해결합니까 : /user/tj/region.parquet 그것은 다음과 같이 예외를 던져?

hdfs 사용자로 쿼리를 실행하는 방법은 무엇입니까?

답변

0

사용자 위장을 구성했다고 생각합니다. 아래 링크를 따라 아파치 드릴에 대한보기 권한을 부여 할 수 있습니다. 실제로 아파치 드릴을 사용하지 않았기 때문에 문제가 해결되면 주석으로 업데이트하십시오.

Configure user impersonation link

+0

클라이언트가있는 사용자 impersontation가 지원되지 않습니다 docsm에 따라 경찰 : 웹 콘솔, REST API를 드릴. 나는 같은 방법을 달성하는 방법을 드릴 웹 콘솔을 사용하고 있습니다. – taransaini43

+0

어쨌든 모든 호스트에서 drillbit 서비스를 hdfs 사용자로 시작하여 빠른 수정 작업을 시작했습니다. 도와 줘서 고마워. – taransaini43