Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: use

博客主要讲述了Hadoop出现权限问题,即Hadoop识别不了Windows下的用户。给出两种解决方法,一是运行代码时指定用户名,二是在代码最前添加相关代码。同时指出解决后存在副本个数与配置文件不一致问题,可将修改后的配置文件放src下或修改代码解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Admin, access=WRITE, inode="/":fanger:supergroup:drwxr-xr-x
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:308)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:214)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:190)
    at org.apache.hadoop.hd

权限问题

hadoop识别不了windows下的用户

解决:

方法1、运行代码时,指定用户名

方法2、代码中,代码最前面添加

System.setProperty("HADOOP_USER_NAME", "hadoop用户名");

或者

FileSystem fs=FileSystem.get(new URI("hdfs://hadoop01:9000"), conf, "hadoop用户名");

 

这种解决完之后会存在副本个数和配置文件中的不一致,生成的副本个数是默认个数

想要修改,可以将修改过的配置文件放入到src下即可

文件名为hdfs-site.xml或者hdfs-default.xml都可以

 或者修改代码:

conf.set("dfs.replication", "4");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值