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
(2)查看hdfs-site.xml配置文件permission下是否为false。
(3)在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME=hadoop。
(4)输入命令hadoop fs -chown -R Administrator:Administrator /tmp,修改相关文件夹的权限
(5)将上述所有方法都试过后,发现程序并没有任何异常,可就是没有结果文件产生???
此问题的产生是由于在集群运行后,再切换到本地运行时产生的问题。
解决办法就是删除idea项目下,resource目录下的四个文件,如图:
问题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。
解决办法:修改该路径其所在组
(1)先查看其所在组: hdfs dfs -ls /tmp/hadoop-yarn/staging/hadoop/
(2)将其所在组Admin修改为hadoop组:hdfs dfs -chown -R hadoop /tmp/hadoop-yarn/staging/hadoop/.staging
(3)再执行yarn jar xxx.jar 类的完全路径 /集群输入路径 /集群输出路径时,成功解决