我正在尝试从My windows计算机将文件写入HDFS群集,但会出现以下错误
org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): 权限被拒绝:user = ...,access = WRITE, 索引节点=" /user/hadoop/Hadoop_File.txt":HDFS:HDFS:-rw-R - R的 -
在我的hadoop配置中
hadoop.security.auth_to_local is set to DEFAULT
hadoop.security.authentication is set to SIMPLE
如果我提到用户名为" hdfs"通过做
System.setProperty("HADOOP_USER_NAME", "hdfs");
一切正常。
但是如果策略很简单,则意味着不允许任何用户创建文件的身份验证 帮助我理解为什么会发生这种情况
答案 0 :(得分:1)
我得到了答案:)你必须配置dfs.permissions.enable = false,一旦关闭它就是我的情况,对于任何使用过的用户都没有抱怨
答案 1 :(得分:0)
Hadoop中的简单身份验证意味着您不需要证明自己是谁,例如使用密码或令牌,但您仍然需要说明您的身份。无论您认为自己是哪一个用户,Hadoop都会相信您并为您请求的操作采用用户名。
HDFS上仍然存在权限(您可以在上面的消息中看到hdfs:hdfs:-rw-r--r--
),因此您需要断言自己是拥有操作所需权限的用户,这就是你使用System.setProperty("HADOOP_USER_NAME", "hdfs");
简短版本是,身份与身份验证不同:)