繁体   English   中英

为以纱线模式运行的每个火花作业配置log4j

[英]configure log4j for each spark job running on yarn mode

我正在用纱客户端模式运行spark作业。 我正在unix脚本中使用spark-submit命令运行这些作业。 我希望每个运行的Spark作业都有日志。 我尝试使用以下命令获取日志:

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}

但是在这里,如果spark作业失败,它将不会陷入命令状态检查中,可能是unix检查| $ tee命令的状态,无论spark作业成功还是失败,该状态始终是成功的

if [ $? -eq 0 ]; then
    echo "===========SPARK JOB COMPLETED==================" |& tee -a ${log_file}
else
    echo "===========SPARK JOB FAILED=====================" |& tee -a ${log_file}
fi

我尝试使用log4j,但无法成功。 我想将每个Spark作业日志文件存储在本地UNIX服务器上。 请帮忙 !!

提交火花申请后。 它生成一个application_id 由于此应用程序在分布式集群中运行,因此无法获取带有重定向的spark应用程序的日志。

但是,当您执行以下操作时,它只会将控制台日志记录重定向到文件中。

spark-submit --master yarn --deploy-mode client --num-executors 10 --executor-memory 2G --driver-memory 2G --jars $spark_jars --class $spark_class  $main_jar > ${log_file}

例如,要获取提交到纱线群集的spark应用程序的日志记录,您需要使用纱线日志命令:

yarn logs -applicationId <application ID> [OPTIONS]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM