错误描述: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源代码上有一段:
- if (!isSecurityEnabled() && (user == null)) {
- String envUser = System.getenv(HADOOP_USER_NAME);
- if (envUser == null) {
- envUser = System.getProperty(HADOOP_USER_NAME);
- }
- user = envUser == null ? null : new User(envUser);
- }
解决办法:
方法一:在系统的环境变量或java工程的变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)
方法二:在当前JDK的变量参数里面添加HADOOP_USER_NAME这个Java变量。

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

被折叠的 条评论
为什么被折叠?



