在使用Java API操作HDFS时如果出现如下错误提示:
org.apache.hadoop.security.AccessControlException: Permission denied: user=XXX, access=WRITE, inode="/user/XXX/output":root:supergroup:drwxr-xr-x
有3种解决方法:
1.在程序的main方法里面,最上面一行加入
System.setProperty("HADOOP_USER_NAME","root");
2.在文件系统FileSystem创建对象时,表明“你的用户名”
FileSystem fileSystem = FileSystem.get(uri ,conf,"root");
3.在hdfs的配置文
<property><name>dfs.permissions</name><value>false</value></property>
件hdfs-site.xml中,将dfs.permissions修改为False(不推荐,可能不成功)