我在一台虚拟机上使用cloudera。不幸的是,我在将数据复制到hdfs时遇到了问题,我得到了以下结果:
[cloudera@localhost ~]$ hadoop fs -mkdir input mkdir: Permission denied: user=cloudera, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
我不太关心这个虚拟机上的安全性,有没有什么方法可以让我在hdfs上打开更多的安全性?
nszi6y051#
export HADOOP_USER_NAME=hdfs
试着运行这个命令,然后做一个目录,它像一个魅力为我工作。
yvfmudvl2#
在cloudera管理器中,您可以更改设置:hdfs->configuration->view&edit,取消选中check hdfs permissions dfs.permissions并重新启动hdfs。
izkcnapc3#
这是因为您没有足够的权限在hdfs中创建目录。尝试以sudo运行此命令:
sudo -u hdfs hadoop fs -mkdir -p /user/samplefolder
但不建议这样做,因为这样会损害安全性。
unhi4e5o4#
当您执行上述命令时,如果hdfs home directory(/user/cloudera)不在那里,那么将首先创建该目录,然后在/user/cloudera下创建目录输入要授予cloudera用户创建自己目录的权限,您必须授予权限。hdfs user是hdfs中的管理用户,切换到hdfs,然后执行以下命令
[hdfs@localhost~]$ hadoop fs -mkdir /user/cloudera ; hadoop fs -chmod 777 /user/cloudera
或者如果您不太关心hdfs的安全性,可以通过在hdfs-site.xml中将下面的属性设置为false来禁用hdfs权限
<property> <name>dfs.permissions.enabled</name> <value>false</value> </property>
将此属性设置为false后,需要重新启动hdfs。
tsm1rwdh5#
使用 mkdir 在hadoop中需要“hadoop文件权限”。从您的示例中可以看到,hdfs是一个拥有创建文件夹权限的用户。所以如果你跑:
mkdir
sudo -u hdfs hadoop fs -mkdir /import
然后 import 将创建文件夹。如果要更改此文件夹的所有者,请运行:
import
sudo -u hdfs hadoop fs -chown new_user /import
现在新用户可以操作 import 文件夹
efzxgjgh6#
我通过在中创建一个超群解决了这个问题 /etc/group 并更新了用户登录信息。我的意思是用户应该是hdfs超组的一部分,才有权在hdfs上进行写操作。$vi /etc/group supergroup:x:30000:root 后来可以在hdfs上写了。希望有帮助
/etc/group
supergroup:x:30000:root
6条答案
按热度按时间nszi6y051#
试着运行这个命令,然后做一个目录,它像一个魅力为我工作。
yvfmudvl2#
在cloudera管理器中,您可以更改设置:hdfs->configuration->view&edit,取消选中check hdfs permissions dfs.permissions并重新启动hdfs。
izkcnapc3#
这是因为您没有足够的权限在hdfs中创建目录。尝试以sudo运行此命令:
但不建议这样做,因为这样会损害安全性。
unhi4e5o4#
当您执行上述命令时,如果hdfs home directory(/user/cloudera)不在那里,那么将首先创建该目录,然后在/user/cloudera下创建目录输入
要授予cloudera用户创建自己目录的权限,您必须授予权限。hdfs user是hdfs中的管理用户,切换到hdfs,然后执行以下命令
或者
如果您不太关心hdfs的安全性,可以通过在hdfs-site.xml中将下面的属性设置为false来禁用hdfs权限
将此属性设置为false后,需要重新启动hdfs。
tsm1rwdh5#
使用
mkdir
在hadoop中需要“hadoop文件权限”。从您的示例中可以看到,hdfs是一个拥有创建文件夹权限的用户。所以如果你跑:然后
import
将创建文件夹。如果要更改此文件夹的所有者,请运行:现在新用户可以操作
import
文件夹efzxgjgh6#
我通过在中创建一个超群解决了这个问题
/etc/group
并更新了用户登录信息。我的意思是用户应该是hdfs超组的一部分,才有权在hdfs上进行写操作。$vi /etc/group
supergroup:x:30000:root
后来可以在hdfs上写了。希望有帮助