我最近在我的机器上安装了Hadoop。我有权限问题。我以rahul用户身份登录并尝试在HDFS(hdfs dfs -mkdir /rahul_workspace
)中创建目录。但它给了我一个错误Permission denied: user=Rahul, access=WRITE, inode="/user":hdfs:hdfs:drwxr-xr-x
。 Google快速搜索此错误会导致许多回复,建议通过将dfs.permissions
中的hdfs-site.xml
属性设置为false
来禁用权限检查。
现在我可以在HDFS中创建目录。如果上面的属性设置为false,我可以访问所有其他hadoop服务,如hive,pig,sqoop等,?
答案 0 :(得分:1)
dfs.permissions是可用于启用/禁用HDFS ACL(简单权限)的属性。将dfs.permission设置为false,任何用户都可以在HDFS中的任何位置创建/删除文件/目录。
将此属性设置为false,您可以访问所有其他Hadoop服务,例如Hive,Pig等。
答案 1 :(得分:1)
HDFS将启动namenode进程的用户视为超级用户'。此用户通常是hdfs
用户。您尝试写入的/user
目录由hdfs
用户和hdfs
组拥有,对hdfs
组和其他用户中的任何用户具有读取和执行权限。
禁用权限似乎有点极端。这里有几个选项,第一个是以hdfs
用户身份创建用户目录。
sudo -u hdfs hdfs fs -mkdir /rahul_workspace
sudo -u hdfs hdfs fs -chown Rahul /rahul_workspace
这将创建您的目录并将所有权更改为您。另一种选择是在已具有写权限的区域中创建目录。通常/ tmp是敞开的。
hdfs fs -mkdir /tmp/rahul_workspace
答案 2 :(得分:1)
On Cloudera: 我做了什么,在Hue上创建了一个具有默认权限的用户,即user1
然后,从linux shell开始,首先访问hdfs用户权限:
export HADOOP_USER_NAME=hdfs
然后为你的linux用户名如“user1”:
尝试:
hdfs dfs -chown user1:user1 /
现在,如果你有适当的权限:
尝试在'/'上创建目录:
hdfs dfs -mkdir /testuser1
答案 3 :(得分:0)
我们已经使用了
hadoop fs -setfacl -m -R user:xyz:rwx / data / dev / dl / fvc / df
在顶级目录(/ data)上克服此问题。