windows上远程运行MapReduce任务遇到的问题

本文详细阐述了在远程Linux机器上遇到的Hadoop权限问题,即用户Administrator无法进行写操作的原因,并提供了两种解决方案:一是修改系统环境变量或Java工程变量添加HADOOP_USER_NAME;二是直接在当前JDK的变量参数中添加该变量。同时解释了配置步骤,确保问题得以解决。

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

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

用户Administator 在hadoop上执行写操作时被权限体系拒绝,在远程linux机器上设置了hadoop用户可写,而没有设置Adminstator可写。因为hadoop源代码上有一段:


  1. if (!isSecurityEnabled() && (user == null)) {   
  2.   String envUser = System.getenv(HADOOP_USER_NAME);   
  3.   if (envUser == null) {   
  4.     envUser = System.getProperty(HADOOP_USER_NAME);   
  5.   }   
  6.   user = envUser == null ? null : new User(envUser);   
  7. }  

解决办法:
方法一:在系统的环境变量或java工程的变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)
方法二:在当前JDK的变量参数里面添加HADOOP_USER_NAME这个Java变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值