我正在 yarn 模式下运行 Spark 作业。 我正在使用 Spark-submit 在 Unix shell 脚本内运行作业。 我想将 Unix 文件夹上的 Spark-submit 命令日志保留在日志文件中。
我试过了
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 作业。
任何人都可以建议处理此问题的推荐方法。
我的要求是在文件中包含 Spark 日志和 Unix 脚本日志
最佳答案
监控应用程序状态的最佳方法是使用yarn Rest api。
您可以使用yarn log命令来记录日志,或者使用yarn api来记录日志。
yarn 日志 -appOwner 'dr.who' -applicationId application_1409421698529_0012 |少
关于java - Spark-Submit 作业日志跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852779/