Hadoop提供AccessControlException

时间:2015-07-31 07:29:44

标签: java hadoop hdfs

我正在尝试从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");

一切正常。

但是如果策略很简单,则意味着不允许任何用户创建文件的身份验证 帮助我理解为什么会发生这种情况

2 个答案:

答案 0 :(得分:1)

我得到了答案:)你必须配置dfs.permissions.enable = false,一旦关闭它就是我的情况,对于任何使用过的用户都没有抱怨

答案 1 :(得分:0)

Hadoop中的简单身份验证意味着您不需要证明自己是谁,例如使用密码或令牌,但您仍然需要说明您的身份。无论您认为自己是哪一个用户,Hadoop都会相信您并为您请求的操作采用用户名。

HDFS上仍然存在权限(您可以在上面的消息中看到hdfs:hdfs:-rw-r--r--),因此您需要断言自己是拥有操作所需权限的用户,这就是你使用System.setProperty("HADOOP_USER_NAME", "hdfs");

简短版本是,身份与身份验证不同:)