以基于Hadoop 生态圈中的Yarn 为例,介绍如何配置才可以在集群中查看Spark 任务日志、如何配置才可以查看运行过的应用程序的日志,这样以后××系统在集群中运行时,可以查看日志,帮助优化程序。
Spark 的任务基于Yarn 提交运行时,每个Spark 应用程序启动之后都会启动一个Driver JVM 进程,这个进程的作用是向Yarn 资源调度框架中的NodeManager 发送task。Driver 可以在提交任务的客户端启动。基于Yarn 提交任务的命令如下:
提交以上命令,Driver 将在客户端启动,这样如果服务器不能将客户端Driver 运行的日志收集起来,就不方便管理。为了方便统一管理Spark 任务运行的所有日志,可以将Driver运行在Yarn 的一台NodeManager 节点上。使用以下命令基于Yarn 资源调度框架提交Spark任务。
通过以上配置,可以搭建Spark 的日志管理系统,将Spark 的所有日志进行保存和查看。
下面以基于Yarn 提交SparkPi 的计算案例为例来说明如何配置Spark 基于Yarn 的日志管理与查看。
首先,启动Hadoop 集群,在mynode1 执行命令start- dfs.sh、start-yarn.sh 启动集群:
然后,在Spark 的客户端mynode4 的/software/spark-2.3.1/bin 路径下提交SparkPi 程序,提交命令如下:
在浏览器中打开Yarn 的任务管理页面https://mynode1:8088,查看提交任务的运行状态,如图4-1 所示。
图4-1 Yarn Application 管理界面
单击图4-1 中的“Tracking UI”,查看当前运行时任务的状态,如图4-2 所示。(www.xing528.com)
图4-2 Spark 任务运行时日志
在客户端可以看到基于Yarn 提交任务后显示的状态信息如下:
完成上述任务后,如果想再次查看任务运行时的日志,在Yarn 的管理页面中单击“Tracking UI” 对应的“History”,弹出如图4-3 所示页面,可以查看当时运行任务的task数量、运行任务时占用的内存等。
图4-3 查看历史日志
单击“Tracking URL”,发现依然查询不到对应的Spark 运行时的状态信息。可以通过配置Yarn 任务管理页面的“Tracking URL”的链接指向及Spark 的历史日志服务器,来查看已完成的Spark 任务的日志问题。
解决上述问题,需要两个步骤:
①配置Yarn Application 中已运行完成任务的“Tracking URL”链接信息。
②配置Spark 的历史日志服务器。
下面在HDFS 和Spark 中修改配置,实现以上两个步骤。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。