Hive Access问题 - 无需写入访问就无法访问Hive CLI



我是hadoop和hive的新手,所以这个问题可能太基本

我将Hadoop用作非Admin用户,即,我不知道HDFS,root或SuperSuler密码。我的目的是仅查询蜂巢表,可能进行一些简单的分析,但不在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目录:

hdfs dfs -ls /

然后找到该目录后,将以下内容添加到您连接到Hive的命令中:

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

如果您处于kerberized环境中,则必须在kerberize db中使用用户名创建校长,并且必须打开票,

注意

您将需要Kerberos Admin特权。

参考

https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin/admin_commands__/kadmin_local.html

然后您可以进入Hadoop环境,但是要读/写/执行Hadoop目录,您必须是:

  • 成为目录的所有者
  • 在该目录的组中
  • 目录必须允许其他组
  • 属于Hadoop超级用户组(您不提到您)

根据我在Hadoop,Linux甚至Windows服务器方面的经验,大多数问题都与权限问题有关。

我想添加有关此的报价:)

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

最新更新