【发布时间】:2017-10-19 02:51:41
【问题描述】:
我正在使用 spark 和 Yarn 作为我的资源经理。我正在尝试在运行后找到一种方法来收集分配给该作业的资源。资源管理器仅报告当前使用情况,因此在完成后会清零。
如果事后我无法获得它们,有没有办法让 Spark 作业在最后输出/存储时累积统计信息?
【问题讨论】:
我正在使用 spark 和 Yarn 作为我的资源经理。我正在尝试在运行后找到一种方法来收集分配给该作业的资源。资源管理器仅报告当前使用情况,因此在完成后会清零。
如果事后我无法获得它们,有没有办法让 Spark 作业在最后输出/存储时累积统计信息?
【问题讨论】:
尝试使用Spark History Server:
事后观察
如果应用程序的事件日志存在,仍然可以通过 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
【讨论】: