hadoop权限问题(hdfs-site.xml dfs.permissions.enabled)

时间:2015-06-25 16:18:50

标签: hadoop permissions hive hdfs cloudera

我最近在我的机器上安装了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等,?

4 个答案:

答案 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)上克服此问题。