2015-06-25 149 views
0

我最近在我的机器上安装了Hadoop。我有权限问题。我以用户rahul的身份登录并试图在HDFS中创建一个目录(hdfs dfs -mkdir /rahul_workspace)。但它给了我一个错误Permission denied: user=Rahul, access=WRITE, inode="/user":hdfs:hdfs:drwxr-xr-x。快速谷歌搜索此错误会导致许多响应提示通过将hdfs-site.xml中的dfs.permissions属性设置为false来禁用权限检查的解决方法。 现在我可以在HDFS中创建目录。如果上述属性设置为false,我是否可以访问Hive,Pig,sqoop等所有其他hadoop服务?hadoop权限问题(hdfs-site.xml dfs.permissions.enabled)

回答

1

dfs.permissions是可用于启用/禁用HDFS ACL(简单权限)的属性。将dfs.permission设置为false时,任何用户都可以在HDFS中的任何位置创建/删除文件/目录。

有了这个属性设置为false,您可以访问所有其他的Hadoop服务,如蜂巢,猪等

1

HDFS对待谁启动名称节点的过程为“超级用户”的用户。该用户通常是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 
1

在Cloudera的: 我做什么,创造了默认权限一个用户的色调即USER1

然后,从Linux shell中,首先做访问HDFS的用户权限: export HADOOP_USER_NAME=hdfs

那么对于您的linux用户名称如“user1”:

尝试: hdfs dfs -chown user1:user1 /

现在,如果你得到了适当的权限:

尝试在 '/' 创建目录: hdfs dfs -mkdir /testuser1

0

我们已经使用

Hadoop的FS -setfacl -m -R用户:XYZ:RWX/data/dev/dl/fvc/df

解决顶级目录(/ data)上的这个问题。