jar 包在spark的 standalone 的 cluster 模式下执行
报错如下:
2018-06-04 16:08:37 ERROR ClientEndpoint:70 - Exception from cluster was: java.io.IOException: Failed to create directory /usr/lib/spark/work/driver-20180604160832-0001
java.io.IOException: Failed to create directory /usr/lib/spark/work/driver-20180604160832-0001
at org.apache.spark.deploy.worker.DriverRunner.createWorkingDirectory(DriverRunner.scala:141)
at org.apache.spark.deploy.worker.DriverRunner.prepareAndRunDriver(DriverRunner.scala:172)
at org.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:92)
错误原因:
spark-submit 提交任务时,会指定jar包的位置,spark会为每一个提交的application生成一个文件夹,默认位于$SPARK_HOME/work目录下,用以存放从HttpFileServer下载下来的第三方库依赖及Executor运行时生成的日志信息。这样容易导致硬盘空间不足
解决方法:
1.暴力删除,使用rm -r删除work文件,再重新创建一个
2.修改spark-env.sh,添加下面的配置
SPARK_WORKER_OPTS=”-Dspark.worker.cleanup.enabled=true”
当程序停止后,对应的程序文件夹会被清理掉