Hive 报“权限错(Permission Denied / Authorization failed)”是很常见的问题,原因通常不止一种。下面按最常见 → 较少见的顺序帮你梳理,并给出排查与解决办法。
Permission denied: user=xxx, access=WRITE, inode="/user/hive/warehouse/..."
Hive 表数据实际存储在 HDFS,当前用户没有对应目录的读写权限。
hdfs dfs -ls /user/hive/warehouse
hdfs dfs -chmod -R 777 /user/hive/warehouse
# 或
hdfs dfs -chown -R hive:hive /user/hive/warehouse
sudo -u hdfs hive
Authorization failed: No privilege 'Select' found
Hive 开启了 SQL 标准鉴权(如 hive.server2.enable.doAs=false + Ranger/Sentry)
hive.security.authorization.enabled=true
hive.server2.enable.doAs=false
GRANT SELECT ON TABLE db.table TO USER user1;
hive.security.authorization.enabled=false
User: anonymous is not allowed to impersonate xxx
HiveServer2 不允许当前用户“伪装”成其他用户。
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
重启 HDFS / HiveServer2。
本地执行 hive 命令报错权限不足。
Linux 当前用户 ≠ HDFS/Hive 授权用户。
su - hive
# 或
kinit user@REALM # Kerberos 环境
GSS initiate failed / No valid credentials
kinit username
klist
并确保 keytab 正确。
Cannot create directory /tmp/hive/xxx
hdfs dfs -chmod 777 /tmp
hdfs dfs -mkdir -p /tmp/hive
hdfs dfs -chmod 777 /tmp/hive
如果你能贴出具体报错信息(完整 stack 或错误行),我可以更精准地告诉你到底是哪一种权限问题。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。