在Spark集群模式下将控制台从工作节点输出到文件

时间:2018-10-26 17:32:44

标签: apache-spark hadoop pyspark yarn cluster-mode

我正在使用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

我该如何实现?

0 个答案:

没有答案