отслеживание журнала заданий spark-submit - PullRequest
1 голос
/ 02 июля 2019

Я выполняю искровые работы в режиме пряжи. Я использую spark-submit для запуска заданий внутри сценария оболочки Unix. Я хочу сохранить журналы команд spark-submit в папке Unix в файле журнала.

Я пытался

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

но если работа по искру не удалась из-за некоторых проблем или исключений, $? не правильно улавливаю ошибку, вместо этого я получаю искру.

Может кто-нибудь предложить рекомендуемый способ решения этой проблемы.

Мое требование - иметь журналы искры вместе с журналами сценариев Unix в файле

1 Ответ

0 голосов
/ 04 июля 2019

Лучший способ отслеживать состояние приложения - использовать API Yarn Rest.

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

Вы можете использовать команду журнала пряжи для журналов или API-интерфейс пряжи для журналов.

журналы пряжи -appOwner 'dr.who' -applicationId application_1409421698529_0012 | меньше

...