java - Spark-Submit 作业日志跟踪

标签 java scala apache-spark bigdata

我正在 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。

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来记录日志。

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

关于java - Spark-Submit 作业日志跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852779/

相关文章:

java - 描述这种随机但公平地调用学生的程序/算法的正确术语是什么?

scala - 我可以将 Scala 列表解构(模式提取)为重用的变量吗?

css - 在 gatling 中,如何验证通过 css 检查提取的字符串的值?

hadoop - 将 org.apache.spark.rdd.RDD[String] 转换为并行化集合

java - rdd.saveAsTextFile() 未处理异常

java - 为什么BroadcastReceiver要在过去的时间初始化?

删除并重新添加后,JavaFX ComboBox 变得不可点击

java - 为 scala akka webservice 编写测试用例

python - 在 PySpark 中,使用 regexp_replace,如何用另一列的值替换一个组?

scala - 在 Spark Shell 中打印所有定义的变量/方法签名 - Scala REPL