Hadoop 权限错误| Apach钻孔查询| HDFS

Hadoop 权限错误| Apach钻孔查询| HDFS,hadoop,ambari,apache-drill,Hadoop,Ambari,Apache Drill,我试图通过Apache分布式模式查询hdfs集群上的拼花地板文件。 我创建了一个名为“hdfs”的新存储插件,其中包含以下配置: 在hadoop fs中,示例文件region.parquet位于/user/tj/文件夹中。默认情况下,它的所有者和组为hdfs:hdfs,我希望保持这种状态 但当我尝试通过以下sql查询从Apache drill UI查询它时: 从hdfs./user/tj/region.parquet中选择* 它抛出异常,如下所示: org.apache.drill.common

我试图通过Apache分布式模式查询hdfs集群上的拼花地板文件。 我创建了一个名为“hdfs”的新存储插件,其中包含以下配置:

在hadoop fs中,示例文件region.parquet位于/user/tj/文件夹中。默认情况下,它的所有者和组为hdfs:hdfs,我希望保持这种状态

但当我尝试通过以下sql查询从Apache drill UI查询它时: 从hdfs./user/tj/region.parquet中选择* 它抛出异常,如下所示:

org.apache.drill.common.exceptions.UserRemoteException:系统错误: RemoteException:权限被拒绝: 用户=, 访问=执行, inode=/user/tj/region.parquet/.drill.parquet\元数据:hdfs:hdfs:-rw-r-r- 在 org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkFSPermissionChecker.java:319 在 org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraversefPermissionChecker.java:259 在 org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermissionFSPermissionChecker.java:205 在 org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermissionFSPermissionChecker.java:190 在 org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermissionFSDirectory.java:1827 在 org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp.getFileInfoFSDirStatAndListingOp.java:108 在 org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfoFSNamesystem.java:3972 在 org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfoNameNodeRpcServer.java:1130 在 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfoClientNamenodeProtocolServerSideTranslatorPB.java:851 在 org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethodClientNamenodeProtocolProtos.java 在 org.apache.hadoop.ipc.protobufrpceengine$Server$protobufrpccinvoker.callprotobufrpceengine.java:640 org.apache.hadoop.ipc.RPC$Server.callRPC.java:982 at org.apache.hadoop.ipc.Server$Handler$1.runServer.java:2313 at org.apache.hadoop.ipc.Server$Handler$1.runServer.java:2309 at 位于的java.security.AccessController.doPrivilegeEdNative方法 javax.security.auth.Subject.doassObject.java:422 at org.apache.hadoop.security.UserGroupInformation.doasurgroupinformation.java:1724 在org.apache.hadoop.ipc.Server$Handler.runServer.java:2307[错误] Id:24bf0cf0-0181-4c72-97ee-4b4eb98771bf on :31010]

如何解决使用ApacheDrill查询hadoop集群文件的权限问题


如何以hdfs用户身份执行查询?

我认为您已经配置了用户模拟。您可以按照下面的链接为apache drill授予查看权限。我实际上没有使用apache drill,所以如果它工作正常,请在评论中更新


根据docsm,不支持用户提示的客户端包括:Drill Web控制台、REST API。我正在使用drill web console,所以如何实现同样的效果。无论如何,我作为hdfs用户在所有主机上启动了drill Bit服务,作为一个快速修复-现在正在工作。谢谢你的帮助。
{
  "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"
    }
  }
}