簡體   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