我正试图从我的windows机器向hdfs集群写入一个文件,但出现以下错误
org.apache.hadoop.ipc.remoteexception(org.apache.hadoop.security.accesscontrolexception):权限被拒绝:user=…,access=write,inode=“/user/hadoop/hadoop\u file.txt”:hdfs:hdfs:-rw-r--r--
在我的hadoop配置中
hadoop.security.auth_to_local is set to DEFAULT
hadoop.security.authentication is set to SIMPLE
如果我通过
System.setProperty("HADOOP_USER_NAME", "hdfs");
一切正常。
但是如果策略很简单,它意味着没有身份验证,它应该允许任何用户创建文件来帮助我理解为什么会发生这种情况
2条答案
按热度按时间wwwo4jvm1#
我得到的答案是:)你必须配置dfs.permissions.enable=false,在我的情况下这是真的一旦关闭,它不会抱怨任何用户使用
1rhkuytd2#
hadoop中的简单身份验证意味着你不需要证明你是谁,例如用密码或令牌,但你仍然需要说出你是谁。无论您声称自己是哪个用户,hadoop都会相信您,并为您请求的操作采用用户名。
在hdfs上仍然有权限(您可以通过
hdfs:hdfs:-rw-r--r--
因此您需要声明自己是一个对您的操作具有必要权限的用户,这就是您所做的System.setProperty("HADOOP_USER_NAME", "hdfs");
短版本是,身份与身份验证不同:)