我正在使用Spark和Yarn作为我的资源管理器。 我正在尝试找到一种方法来收集运行后为作业分配的资源。 资源管理器仅报告当前使用情况,因此在完成后将其清零。
如果我在事后无法获得它们,有没有办法让 Spark Job 在最后输出/存储时积累统计数据?
尝试使用 Spark 历史记录服务器:
事后查看
只要应用程序的事件日志存在,仍然可以通过 Spark 的历史记录服务器构造应用程序的 UI。您可以通过执行以下命令来启动历史记录服务器:
./sbin/start-history-server.sh
默认情况下,这会在http://<server-url>:18080
创建一个 Web 界面,列出不完整和已完成的应用程序和尝试。
使用文件系统提供程序类(请参阅下面的 spark.history.provider)时,必须在 spark.history.fs.logDirectory 配置选项中提供基本日志记录目录,并且应包含每个子目录表示应用程序的事件日志。
Spark 作业本身必须配置为记录事件,并将它们记录到同一共享的可写目录中。例如,如果服务器配置了 hdfs://namenode/shared/spark-logs
的日志目录,则客户端选项将为:
spark.eventLog.enabled true
spark.eventLog.dir hdfs://namenode/shared/spark-logs