我在我正在玩的VM机器上使用Cloudera.不幸的是我在将数据复制到HDFS时遇到问题,我得到以下信息:
[cloudera@localhost ~]$ hadoop fs -mkdir input mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
我不太关心这个VM的安全性,无论如何我可以在HDFS上打开更多的安全性吗?
mkdir
在hadoop中使用需要"hadoop文件权限".在您的示例中,您可以看到hdfs是具有创建文件夹权限的用户.所以,如果你运行:
sudo -u hdfs hadoop fs -mkdir /import
然后import
将创建该文件夹.如果要更改此文件夹的所有者,请运行:
sudo -u hdfs hadoop fs -chown new_user /import
现在new_user可以操作文件import
夹中的文件
当你执行上面的命令时,如果没有hdfs主目录(/ user/cloudera),那么首先会创建该目录,然后在/ user/cloudera下创建目录输入
要获得cloudera用户创建自己的目录的权限,您必须授予权限.hdfs user是hdfs中的admin用户切换到hdfs然后执行以下命令
[hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777 /user/cloudera
要么
如果您不太关心hdfs安全性,则通过在hdfs-site.xml中将below属性设置为false来禁用hdfs权限
dfs.permissions.enabled false
将此属性设置为false后,需要重新启动hdfs.
在cloudera manager中,您可以更改设置:hdfs-> configuration-> view&edit,取消选中检查HDFS权限dfs.permissions并重新启动hdfs.