我正在纱线模式下运行火花作业。 我正在使用spark-submit在Unix shell脚本中运行作业。 我想将spark-submit命令日志保留在日志文件中的Unix文件夹中。
我尝试了
spark-submit --master yarn --deploy-mode client --num-executors 10 --executor-memory 2G --driver-memory 2G --jars $spark_jars --class $spark_class $main_jar |& tee -a ${log_file}
使用tee命令。然后,我将上述命令的状态检查为
if [ $? -eq 0 ]; then
echo "===========SPARK JOB COMPLETED==================" |& tee -a ${log_file}
else
echo "===========SPARK JOB FAILED=====================" |& tee -a ${log_file}
fi
但是如果spark作业由于某些问题或异常而失败,则$?不能正确捕获错误,而是我完成了火花作业。
任何人都可以建议处理此问题的推荐方法。
我的要求是在文件中同时包含Spark日志和Unix脚本日志
答案 0 :(得分:0)
监视应用程序状态的最佳方法是使用yarn rest api。
您可以将yarn log命令用于日志,也可以将yarn api用于日志。
纱线日志-appOwner'dr.who'-applicationId application_1409421698529_0012 |少