Hadoop 配置单元访问问题-在没有写访问权限的情况下无法访问配置单元CLI

Hadoop 配置单元访问问题-在没有写访问权限的情况下无法访问配置单元CLI,hadoop,hive,Hadoop,Hive,我是Hadoop和Hive新手,所以这个问题可能太基本了 我使用Hadoop作为非管理员用户,也就是说,我不知道hdfs、root或超级用户密码。我的目标是只查询配置单元表,并可能进行一些简单的分析,但不写入hdfs或创建任何新表 Logging initialized using configuration in file:/etc/hive/2.3.2.0-2950/0/hive-log4j.properties Exception in thread "main" java.lang.Ru

我是Hadoop和Hive新手,所以这个问题可能太基本了

我使用Hadoop作为非管理员用户,也就是说,我不知道hdfs、root或超级用户密码。我的目标是只查询配置单元表,并可能进行一些简单的分析,但不写入hdfs或创建任何新表

Logging initialized using configuration in file:/etc/hive/2.3.2.0-2950/0/hive-log4j.properties
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=b001195, access=WRITE, inode="/user/b001195":hdfs:hdfs:drwxr-xr-x
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:319)
我可以看到这个错误表明这个用户没有对hdfs的写访问权。但我不想写任何东西。是否有人可以建议我可以通过访问级别进行哪些更改以删除此问题


提前感谢您的帮助。

使用以下命令查找具有777权限(/tmp)的hdfs目录:

找到该目录后,将以下内容添加到连接到配置单元的命令中:

--hiveconf hive.exec.scratchdir=<DIRECTORY FOUND IN PREVIOUS STEP>
--hiveconf hive.exec.scratchdir=

如果您在kerberize环境中,您必须在kerberize db中使用您的用户名创建主体,并且您必须打开票据

注意

为此,您需要Kerberos管理员权限

参考

那么,您可以很好地进入Hadoop环境,但要读取/写入/执行Hadoop目录,您必须:

  • 是目录的所有者
  • 在该目录的组中
  • 目录必须授予其他组权限
  • 在Hadoop超级用户组中(您不是您提到的那样)
根据我使用Hadoop、Linux甚至Windows服务器的经验,大多数问题都与权限问题有关

我想补充一下我的报价:)

当我们生活在一个不需要任何钥匙、锁、门、保险箱、密码、用户权限或任何与安全相关的浪费时间/金钱的障碍的世界中时,我们可以说我们生活在一个完美的社会中


集群是kerberized吗?是的,我认为集群是kerberized Hanks。我尝试了这一点,但它现在给了我一个不同的错误:权限被拒绝:user=b001195,access=EXECUTE,inode=“/user/hdfs/.hiveJars”:hdfs:hdfs:drwx------。请建议我可以采取的步骤。很抱歉,由于文字限制,给您发了这么短的信息。没问题,朋友@user3750170-请将其作为其他文件打开question@PaulBack-请为您的回答添加一个解释,说明为什么需要写权限(“但我不想写任何东西”)。谢谢。您需要写访问的原因是hive在hdfs中生成中间文件,因为MapReduce(底层数据处理引擎)是基于文件的,而且它在hdfs中从客户端转移一些JAR。能否粘贴为
hive.exec.scratchdir
设置的参数的
hdfs dfs-ls
输出?
--hiveconf hive.exec.scratchdir=<DIRECTORY FOUND IN PREVIOUS STEP>