hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

问题1、Permission denied

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwxrwx---

Caused by:

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=Administrator, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwxrwx---

解决方法:

(1)查看sudoers文件,看是否有添加hadoop ALL=(ALL) ALL;

vi /etc/sudoers 

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

(2)查看hdfs-site.xml配置文件permission下是否为false。

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

3在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME=hadoop。

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

(4)输入命令hadoop fs -chown -R Administrator:Administrator /tmp,修改相关文件夹的权限

(5)将上述所有方法都试过后,发现程序并没有任何异常,可就是没有结果文件产生???

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

此问题的产生是由于在集群运行后,再切换到本地运行时产生的问题。

解决办法就是删除idea项目下,resource目录下的四个文件,如图:

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

 

问题2、The ownership on the staging directory xxxx is not as expected. It is owned by Admin。

Exception in thread "main" java.io.IOException: The ownership on the staging directory /tmp/hadoop-yarn/staging/hadoop/.staging is not as expected. It is owned by Admin. The directory must be owned by the submitter hadoop or by hadoop。

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

解决办法:修改该路径其所在组

(1)先查看其所在组: hdfs dfs -ls /tmp/hadoop-yarn/staging/hadoop/

hadoop集群运行模式出现Permission denied: user=Administrator, access=EXECUTE, inode="/tmp"

(2)将其所在组Admin修改为hadoop组:hdfs dfs -chown -R hadoop /tmp/hadoop-yarn/staging/hadoop/.staging

(3)再执行yarn jar xxx.jar 类的完全路径 /集群输入路径 /集群输出路径时,成功解决