数据岗位面试题更新 2026-08-05

请说明在 Apache Spark 中监控作业执行情况的方法,并列举一些常用的监控工具。

数据风险判断技术原理Apache Spark

考察说明

考查对 Spark 作业监控机制和常用监控工具的掌握程度。

回答思路

  1. 【回答框架 1】Spark 作业监控主要分为两类:内置监控和外部工具。内置监控包括 Web UI、日志和度量系统(Metrics)。Web UI 可以在 Spark 应用运行时通过端口(默认 4040)访问,展示作业、阶段、任务、存储、执行器、流式查询等详细信息;Spark 历史服务器(History Server)则用于在作业运行结束后查看已完成的作业记录。
  2. 【回答框架 2】外部监控工具包括 Ganglia、Graphite、Prometheus、Grafana 等,它们通过采集 Spark 的度量数据实现可视化监控。Spark 支持将度量发送到这些系统,需要配置 metrics.properties 文件,启用相应 sink,并指定采集周期和输出地址。
  3. 【回答框架 3】日志监控方面,可以通过收集 Driver 和 Executor 的日志(如使用 log4j)来分析任务运行状态、异常信息和资源使用情况。Executor 的日志默认通过 Spark Web UI 的 Executors 页面查看,也可以配置远程日志收集工具(如 ELK)进行集中管理。
  4. 【回答框架 4】对于流式作业,Spark Structured Streaming 在 Web UI 中提供专门的查询页面,展示输入速率、处理速率、批处理时间等指标;也可以结合 Kafka、Flume 等下游系统监控端到端延迟。
  5. 【回答框架 5】实际生产环境通常组合使用多种方式:先通过 Web UI 和日志排查基础问题,再通过 Prometheus 和 Grafana 建立统一的可观测性平台,对资源、任务延迟、失败率等关键指标设置告警,实现作业全生命周期的监控与告警。
  6. 【关键点 1】Web UI 是了解作业执行细节的基础,包含作业、阶段、任务、执行器、存储等关键页面;历史服务器用于离线查看已完成应用的 UI。
  7. 【关键点 2】Metrics 系统支持将度量输出到 Ganglia、Graphite、Prometheus 等,通过可视化工具进行实时监控和趋势分析。
  8. 【关键点 3】日志是定位故障和性能问题的核心,结合 Web UI 的 Executor 日志和日志收集系统可快速排查。
  9. 【关键点 4】流式作业需额外关注延迟和吞吐指标,Structured Streaming UI 提供专门的查询统计。
  10. 【关键点 5】监控工具选型需考虑集群规模、运维成本和要求,通常组合使用 Web UI、日志和外部监控平台实现全面覆盖。
  11. 【易错点 1】Web UI 仅展示运行中或历史服务器记录的应用,若未启用历史服务器且作业结束后,UI 信息将丢失。
  12. 【易错点 2】度量数据输出配置(如 metrics.properties)需要正确设置 sink 和采样时间,否则可能导致数据缺失或性能开销。
  13. 【易错点 3】直接依赖日志文件进行实时监控时,日志分散在集群节点上,需集中收集和分析,不能仅靠单节点日志。