火花提交作业日志跟踪

时间:2019-07-02 12:43:05

标签: java scala apache-spark bigdata

我正在纱线模式下运行火花作业。 我正在使用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脚本日志

1 个答案:

答案 0 :(得分:0)

监视应用程序状态的最佳方法是使用yarn rest api。

https://docs.hortonworks.com/HDPDocuments/HDP3/HDP-3.1.0/data-operating-system/content/using_the_yarn_rest_apis_to_manage_applications

https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API

您可以将yarn log命令用于日志,也可以将yarn api用于日志。

纱线日志-appOwner'dr.who'-applicationId application_1409421698529_0012 |少