eclipse中连接hadoop解决“org.apache.hadoop.security.AccessControlException”

解决“org.apache.hadoop.security.AccessControlException”  


Permission denied: user=Administrator, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x


解决方案有4种


1.关闭Hdfs的安全检查(permission checking):将hdfs-xml中 dfs.permissions 属性的值设置为 false 。但是这种方法的弊端是会导致Hdfs系统中所有的安全特性都被禁用,使Hdfs的安全性降低。

2.Hdfs的用户权限是与本地文件系统的用户权限绑定在一起的,根据错误中的

Permission denied: user=Administrator, access=WRITE, inode="/user":root:supergroup:drwxr-xr-x

我们可以发现,Hdfs中的/user目录是属于supergroup组里的root用户的,在hadoop中修改执行操作的用户为该目录所属的用户


3.添加操作用户到supergroup组
 如果是Linux环境,将执行操作的用户添加到supergroup用户组。
groupadd supergroup
usermod -a -G supergroup spry
如果是Windows用户,在hdfs namenode所在机器添加新用户,用户名为执行操作的Windows用户名,然后将此用户添加到supergroup用户组。
adduser Administrator
groupadd supergroup

usermod -a -G supergroup Administrator


4.显示设定环境变量: 比较靠谱的方式:System.setProperty("HADOOP_USER_NAME", "root"); 当然还可以通过run configuration 的方式进行指定jvm环境功能变量‘-DHADOOP_USER_NAME=root’

参考文章:

https://www.2cto.com/net/201612/577705.html

https://blog.csdn.net/Camu7s/article/details/50231625

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值