[java&hdfs篇]使用Java创建目录和HDFS的权限(causeBy permissions deny)问题及解决方法

博客主要讲述了HDFS新建目录/folder111时遇到的权限问题,因只有root用户有写权限,其他用户操作会报错。同时给出四种解决方法,包括设置属性指定用户为root、用-D法获取命令行参数指定身份、改变目录权限以及修改<dfs.permissions>的值。

一.看一下新建目录/folder111的权限及创建目录的用户.

1.由下图我们知道/folder111的权限是755。而此时的操作用户为其他用户admin。又因为只有当前root用户有写的权限,而同组用户和其他用户都不具备写的权限,所以报错权限被否causeby

dbeb59e317f14e0a9f2ac85affb14644.png

 2.查看自己电脑当前登录的用户是admin

0eb416cdbb984ce18a7049757d926cad.png

 

二.解决方法:有4种解决方法,前三种常用

1.设置一个属性
AW -->root   hdfs 你说你是谁,你就是谁,不加验证。
//指定当前hadoop的用户是root,放在testMkdir的第一行,就能正常往hdfs上写文件
System.setProperty("HADOOP_USER_NAME","root");

453c2be130cb45faaf402613bba82568.png

2.-D 法,获取命令行的参数,相当于main方法中的args参数。具体操作步骤如下:

(1)找到项目的编辑配置Edit Configurations…

6cad9e2e3d1c4d0d805d3422156f4a23.png

 (2)找到VM options,添加指定身份

3b1040d430d14b3f85f252e4d9d611be.png

3.改变目录的权限   chmod    hdfs dfs -chmod  777  /folder111
4.<dfs.permissions>  ture  -->false 

f4500f4b38a947ed9e3a1ca96859bc28.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值