Hive访问问题 - 无法在没有写访问权限的情况下访问Hive CLI

时间:2017-03-03 01:01:01

标签: hadoop hive access

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

我使用Hadoop作为非管理员用户,即我不知道hdfs,root或超级用户密码。我的目标是只查询Hive表并可能做一些简单的分析,但不能写入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的写访问权。但我不想写任何东西。任何人都可以建议我通过访问级别进行哪些更改来删除此问题?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

hdfs dfs -ls /

然后,一旦找到该目录,请将以下内容添加到使用以下命令连接到配置单元的命令:

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

答案 1 :(得分:0)

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

注意

您需要Kerberos管理员权限。

参考

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

然后你很高兴进入Hadoop环境但是,要读/写/执行Hadoop目录,你必须要么:

  • 是目录的所有者
  • 在该目录的组中
  • 目录必须授予其他组
  • 的权限
  • 在Hadoop超级用户组中(你没有像你提到的那样)

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

我想加上关于此的引用:)

  

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