我是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的写访问权。但我不想写任何东西。有谁能建议我可以通过我的访问级别进行哪些更改来删除此问题吗?
事先谢谢你的帮助。
2条答案
按热度按时间r3i60tvu1#
使用以下命令查找具有777权限的hdfs目录(/tmp):
找到该目录后,将以下内容添加到连接到配置单元的命令中:
fsi0uk1n2#
如果你在kerberized环境中,你必须用你的用户名在kerberize数据库中创建主体,并且你必须打开一个票证,
笔记
你需要kerberos管理员权限。
参考文献:
https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands__/kadmin_local.html
那么,您可以很好地进入hadoop环境,但要读取/写入/执行hadoop目录,您必须:
是目录的所有者
在该目录的组中
目录必须授予其他组权限
加入hadoop超级用户组(你没有提到)
根据我使用hadoop、linux甚至windows服务器的经验,大多数问题都与权限问题有关。
我想补充一下我的话:)
当我们生活在一个我们不需要任何钥匙、锁、门、保险箱、密码、用户权限或任何与安全相关的浪费时间/金钱的障碍的世界时,我们可以说我们生活在一个完美的社会