为Cloudera Hadoop设置权限

9
我在大约20个节点的集群上安装了Cloudera Hadoop 4。使用Cloudera Manager进行安装非常顺利,但是当我想使用命令创建输入目录时,出现以下错误:mkdir: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x 看起来像是经典的权限问题,但我不知道从哪里开始解决。我找到了这份文档,如果我知道该怎么做,就可以解决我的问题。首先我不知道我是否使用MapReduce v1或v2(我在我的Cloudera Manager中没有看到任何Yarn服务,所以我的猜测是v1 (?))。其次,由于整个安装过程都是自动完成的,我不知道安装了什么以及安装在哪里。
有人能指导我如何简单地解决这个问题吗?我真的很希望能找到最简单的解决方案,我完全不关心安全性问题,因为这只是一个测试。如果我能给所有用户所有可能的权限,那就没问题了。
4个回答

16

我解决了我的问题:在Cloudera Manager中,进入高级选项下的HDFS配置,在HDFS服务配置安全阀中加入以下代码:

<property>
  <name>dfs.permissions</name>
  <value>false</value>
</property>

11
谢谢! 现在需要在GUI中进行设置。 localhost:7180 -> hdfs1 -> 配置 -> 查看和编辑 -> 取消勾选“检查HDFS权限”。 重新启动虚拟机。 - Shehaaz
谢谢你帮我节省了很多时间! - iRuth
2
另外一种方法是使用以下命令:"sudo -u hdfs hadoop fs -mkdir input"。 - sandeepkunkunuru
这确实解决了问题 - 但是关闭权限是一种“核”解决方案吗?就像关闭防火墙一样 - 它并没有真正解决问题? - Jeremy Hajek

0

更改dfs.permission总是一个解决方案,但您也可以尝试更改用户。在我的系统中,写入权限仅分配给'hdfs'用户。可以通过以下命令更改用户:

su hdfs

在这种情况下,hdfs用户没有密码,并且不在sudoers列表中。您需要首先将其添加到sudoers列表中,然后需要密码。 - user3123372

0

hdfs1 -> 配置 -> 查看和编辑 -> 取消选中 "检查HDFS权限",这个方法有效,谢谢Shehaz。


0

1.不要修改dfs.permissions。将其值保持为true。

2.如果需要,为特定用户添加组。(可选)

groupadd development groupadd production

echo "已创建生产和开发组。"

创建具有现有组的用户并分配hdfs目录以使用

useradd -g development clouddev3 sudo -u hdfs hadoop fs -mkdir -p /user/clouddev3 sudo -u hdfs hadoop fs -chown -R clouddev3:development /user/clouddev3 echo "已创建用户clouddev3,并拥有hdfs中/user/clouddev3目录"

现在使用clouddev3用户登录并尝试,

hdfs dfs -ls /user/clouddev3

或者hdfs dfs -ls


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接