2017-01-17 4 views
0

Apache Drill(分散モード)を介してhdfsクラスタに存在する寄木細工ファイルを照会しようとしています。私は/user/tj/フォルダ内のサンプルファイルregion.parquetを持っているのHadoop 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/user/tj/region.parquet それは以下のように例外をスロー:

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]

私はapacheのドリルを使用してHadoopクラスタファイルを照会するために、このアクセス許可の問題をどのように修正すればよいですか?

hdfsユーザーとしてクエリを実行する方法は?

答えて

0

私はあなたがユーザーの偽装を設定していると思います。以下のリンクを参照して、Apacheのドリルの表示権限を与えることができます。私は実際にはapacheのドリルを使用していないので、それがうまくいけばコメントで更新してください。 Webコンソール、REST APIをドリル:ユーザーimpersontationがサポートされていないクライアントdocsmを1として

Configure user impersonation link

+0

。 私は同じように達成するためにどのようにドリルウェブコンソールを使用しています。 – taransaini43

+0

とにかく、すべてのホストでドリルアップサービスをhdfsユーザーとして開始しました。ご協力ありがとうございました。 – taransaini43

関連する問題