我正在使用bashshell和spark-sql-2.4.1v。我在shell脚本中使用spark submit提交spark作业。
Need to capture the status of my job. how can this be achieved ?
有什么帮助/建议吗?
v1uwarro1#
检查以下代码。
process_start_datetime=$(date +%Y%m%d%H%M%S) log_path="<log_dir>" log_file="${log_path}/${app_name}_${process_start_datetime}.log" spark-submit \ --verbose \ --deploy-mode cluster \ --executor-cores "$executor_cores" \ --num-executors "$num_executors" \ --driver-memory "$driver_memory" \ --executor-memory "$executor_memory" \ --master yarn \ --class main.App "$appJar" 2>&1 | tee -a "$log_file" status=$(grep "final status:" < "$log_file" | cut -d ":" -f2 | tail -1 | awk '$1=$1')
获取应用程序id
applicationId=$(grep "tracking URL" < "$log_file" | head -n 1 | cut -d "/" -f5)
gj3fmq9x2#
spark-submit 是一个异步作业,因此当我们提交命令时,您可以通过调用 SparkContext.applicationId . 然后可以检查状态。参考-https://issues.apache.org/jira/browse/spark-5439如果spark部署在Yarn上,则可以使用-
spark-submit
SparkContext.applicationId
///To get application ID use yarn application -list yarn application -status application_1459542433815_0002
他们在回答中提到了另一种方式
2条答案
按热度按时间v1uwarro1#
检查以下代码。
获取应用程序id
gj3fmq9x2#
spark-submit
是一个异步作业,因此当我们提交命令时,您可以通过调用SparkContext.applicationId
. 然后可以检查状态。参考-https://issues.apache.org/jira/browse/spark-5439
如果spark部署在Yarn上,则可以使用-
他们在回答中提到了另一种方式