Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hadoop提供AccessControlException_Java_Hadoop_Hdfs - Fatal编程技术网

Java Hadoop提供AccessControlException

Java Hadoop提供AccessControlException,java,hadoop,hdfs,Java,Hadoop,Hdfs,我试图从windows计算机向HDFS群集写入一个文件,但出现以下错误 org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): 权限被拒绝:用户=…,访问=写入, inode=“/user/hadoop/hadoop_File.txt”:hdfs:hdfs:-rw-r--r-- 在我的hadoop配置中 hadoop.security.auth_to_local is s

我试图从windows计算机向HDFS群集写入一个文件,但出现以下错误

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): 权限被拒绝:用户=…,访问=写入, inode=“/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");
一切正常

但如果策略很简单,就意味着没有身份验证,那么它应该允许任何用户创建文件
帮助我理解为什么会发生这种情况

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

HDFS上仍然有权限(您可以在上面的消息中看到,使用
HDFS:HDFS:-rw-r--
),因此您需要声明自己是一个拥有操作所需权限的用户,这就是您使用
System.setProperty(“HADOOP_user_NAME”,“HDFS”)所做的


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

我得到了答案:)您必须配置dfs.permissions.enable=false,在我的情况下是正确的,一旦关闭,它不会对任何使用过的用户投诉。

感谢您的深入了解,但最近我的答案是:“你必须配置DFS PrimeSist.Eng= FALSE,它在我的情况下是真的,一旦它被关闭,它不会抱怨任何用户使用。如果你认为这是你的问题的最佳解决方案,请把它作为你自己的问题的答案来帮助其他人在未来。