YARN运行模式下:
启动spark-sql失败:
报错:
java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Permission denied
…….
Caused by: java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1006)
at java.io.File.createTempFile(File.java:1989)
at org.apache.hadoop.hive.ql.session.SessionState.createTempFile(SessionState.java:818)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:513)`
正常情况下的此处日志信息应为:
In Spark 1.0 and later spark.local.dir will be overridden by the value set by the cluster manager (via SPARK_LOCAL_DIRS in mesos/standalone and LOCAL_DIRS in YARN). | org.apache.spark.internal.Logging$class.logWarning(Logging.scala:66)
而此处我们的报错为permission denied。
分析问题原因可能是spark.local.dir或者SPARK_LOCAL_DIRS或者LOCAL_DIRS的目录权限配置不对。
1、查看spark安装目录下的配置文件,spark-defaults.conf中的参数spark.local.dir为/tmp,权限为777
2、未找到SPARK_LOCAL_DIRS或者LOCAL_DIRS的参数信息。
在查看spark安装目录时发现安装目录下有个tmp文件夹,进入后发现残存许多临时文件目录,
遂删之,rm -rf spark-* ,重新启动spark-sql成功
目前尚未找到问题产生原因。
参考此文:
https://www.cnblogs.com/HopkinsCybn/p/10087336.html
https://blog.csdn.net/shenfuli/article/details/52473506
勉强解释为临时目录下临时文件或文件夹过多,超出限制,导致spark失败。
具体原因,以后再详细定位。