HDFS客户端的权限错误:Permission denied

来源:互联网 发布:微信小说网站源码 编辑:程序博客网 时间:2024/04/20 11:28

搭建hadoop环境的时候,在使用java代码访问HDFS的时候会出现如下的错误:

org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="hadoop": hadoop:supergroup:rwxr-xr-x

原因就是权限拒绝,如何解决呢?两种方式:

第一种方式:
fs = FileSystem.get(new URI("hdfs://hadoop:9000"), new Configuration(),"root");
直接使用FileSystem链接的时候指定登陆的用户

第二种方式,改变账号,有以下三种途径(任意即可):
1)在系统的环境变量中添加HADOOP_USER_NAME的变量,值为hadoop文件夹所属的用户
2)将当前用户修改为hadoop文件夹所属的用户
3)使用HDFS的命令行接口修改相应目录的权限,hadoop fs -chmod 777 /user,后面的/user是要上传文件的路径,不同的情况可能不一样,比如要上传的文件路径为hdfs://namenode/user/xxx.doc,则这样的修改可以,如果要上传的文件路径为hdfs://namenode/java/xxx.doc,则要修改的为hadoop fs -chmod 777 /java或者hadoop fs -chmod 777 /,java的那个需要先在HDFS里面建立Java目录,后面的这个是为根目录调整权限。

详见:http://www.huqiwen.com/2013/07/18/hdfs-permission-denied/

0 0
原创粉丝点击