spark on yarn集群运行程序报错:Stack trace: ExitCodeException exitCode=15:
查看yarn的聚合日志,将日志下载下来查看。
yarn logs -applicationId application_1522668922644_40211 -out ./info
发现日志内的错误如下
java.io.FileNotFoundException: File does not exist: hdfs:/spark2-history
是因为在HDFS上没改文件夹,然后我们去创建
# hdfs dfs -mkdir /spark2-history
有发现我们没有权限
产生问题原因:
环境hadoop2,Ambari创建
使用# hdfs dfs -mdkir /spark2-history创建文件路径时,出现权限问题
无论是用 # sudo hadoop fs -mkdir /spark2-history建立文件 还是 put文件,都会显示
Permission denied: user=root, access=WRITE, inode="/spark2-history" :hdfs:hdfs:drwxr-xr-x
之类的错误,面对这个错误我们改如何解决那?
其实是这样的,/spark2-history这是文件的所有者是HDFS 权限为755 也就是只有HDFS才能对这个文件进行sudo的操作
那么接下来我们便可以这样操作文件
# sudo -u hdfs hadoop fs -mkdir /spark2-history 我们可以以hdfs的身份对文件进行操作
如果出入# sudo -u hdfs -dfs -chmod 777 /spark2-history 那么结果便是将/spark2-history的读写执行权限修改。
在通过hdfs用户更改所在用户的权限
# sudo -u hdfs hadoop fs -chown spark:hadoop /spark2-history
完美OK啦