我正在使用pyspark
运行spark-submit
脚本。作业成功运行。
现在,我正在尝试将此作业的控制台输出收集到如下文件中。
spark-submit in yarn-client mode
spark-submit --master yarn-client --num-executors 5 --executor-cores 5 --driver-memory 5G --executor-memory 10G --files /usr/hdp/current/spark-client/conf/hive-site.xml --jars /usr/hdp/current/spark-client/lib/datanucleus-api-jdo-3.2.6.jar,/usr/hdp/current/spark-client/lib/datanucleus-rdbms-3.2.9.jar,/usr/hdp/current/spark-client/lib/datanucleus-core-3.2.10.jar --py-files customer_profile/customer_helper.py#customer_helper.py,customer_profile/customer_json.json customer_profile/customer.py > /home/$USER/logs/customer_2018_10_26 2>&1
我能够重定向所有写入文件/home/$USER/logs/customer_2018_10_26
的控制台输出,包括所有loglevels and any stacktrace errors
spark-submit in yarn-cluster mode
spark-submit --master yarn-cluster --num-executors 5 --executor-cores 5 --driver-memory 5G --executor-memory 10G --files /usr/hdp/current/spark-client/conf/hive-site.xml --jars /usr/hdp/current/spark-client/lib/datanucleus-api-jdo-3.2.6.jar,/usr/hdp/current/spark-client/lib/datanucleus-rdbms-3.2.9.jar,/usr/hdp/current/spark-client/lib/datanucleus-core-3.2.10.jar --py-files customer_profile/customer_helper.py#customer_helper.py,customer_profile/customer_json.json customer_profile/customer.py > /home/$USER/logs/customer_2018_10_26 2>&1
使用yarn-cluster
模式时,我无法重定向写入文件/home/$USER/logs/customer_2018_10_26
的控制台输出。
问题是,如果我的工作在yarn-client
模式下失败,我可以转到文件/home/$USER/logs/customer_2018_10_26
并轻松查找错误。
但是,如果我的工作在yarn-cluster
模式下失败,那么我将无法将堆栈跟踪复制到文件/home/$USER/logs/customer_2018_10_26
。我可以调试错误的唯一方法是使用yarn logs
。
我想避免使用yarn logs
选项,而是想在使用error stack trace
模式时在文件/home/$USER/logs/customer_2018_10_26
本身中看到yarn-cluster
。
我该如何实现?