Hadoop远程调试删除文件报错:org.apache.hadoop.security.AccessControlException: Permission denied: user=

–>

一、问题描述

使用Idea操作hdfs上文件,进行文件删除,结果报错因为用户名没有权限,而无法操作对应文件

[ERROR] 09:13:32.239 [main] ERROR com.hadoop.hdfs.HdfsApi – HdfsApi delete IOException
org.apache.hadoop.security.AccessControlException: Permission denied: user=Lenovo, access=WRITE, inode=”/upload/2020/2/26″:upload:upload:drwxr-xr-x
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:279)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:260)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:240)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:165)

二、问题原因

程序取得用户名,默认是本地windows系统的登陆用户名,所以,无法去操作hdfs上的文件,因为hdfs上的文件有权限控制。解决问题的方法,一是或者把hdfs上文件权限全部改为777;二是修改hadoop配置文件hdsf-site.xml的dfs.permissions.enabled设置为false不检测;三是修改本地windows用户名;四是修改Idea的vm环境中操作hdfs的用户名。毫无疑问,方法四修改VM用户名会更加方便而且安全。

三、解决步骤

1.修改程序的配置

2.在Environment variables处添加变量:HADOOP_USER_NAME=upload,即可

3.重新运行程序即可以upload用户名操作对应文件~

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章