全部产品
Search
文档中心

云原生大数据计算服务 MaxCompute:使用LogView诊断作业

更新时间:Mar 12, 2026

在提交Spark on MaxCompute作业后,通过MaxCompute提供的Logview工具能够获取作业日志,以检查作业是否已正常提交并执行。

功能介绍

logview.odps.aliyun.com开头的URL,称为LogView。Spark on MaxCompute通过Spark-submit方式(DataWorks执行Spark任务时也会产生相应日志)成功提交作业后,MaxCompute会创建一个Instance,并在日志中打印Instance的Logview,根据Logview能够追踪作业的运行情况。

主要包含以下功能

  • 获取作业类型和状态、各节点的启停调度信息。如图所示:

    image

  • 查看Driver以及每个Executor在运行时的内存和CPU使用情况。如上图点击Sensor查看。

  • 获取作业各节点的标准输入输出日志。Spark结果输出建议打印到StdOut,Spark的log4j日志则默认输出到StdErr。如下图所示:

    image

    • Spark Driver节点日志对应于LogView Master StdOut/StdErr。

    • Spark Executor节点日志对应于LogView Worker StdOut/StdErr。

    • 通过System.out.println()输出到控制台的日志会显示在StdOut中。

    • 通过log插件打印的日志会显示在StdErr中。

    • 通过System.out.println()输出到控制台的日志会显示在StdOut中。

利用LogView排查问题

在浏览器中打开日志输出的Logview,查看CUPID类型作业的运行情况。

  • 排查过程中首先查看Master Stderr/Stdout 报错,Master一般会包含关键性的错误。更多问题详情请参见Spark常见问题

    image

    • 出现连接外部服务Time out,参考访问阿里云VPC检查任务配置。

    • 出现类或者方法找不到,参考Java/Scala类冲突问题检查作业打包。

    • 出现Executor连接失败或找不到Chunk等错误,需要进一步查看Executor的报错,是否有OOM问题,参考运行时OOM问题

    • 出现System internal error相关的报错日志,可能是配置或平台导致的问题,可以通过工单联系我们进一步排查。

  • 若Executor异常退出,在LogView中的状态为Failed,可以优先查看这些Worker的日志。

  • 使用Sensor查看资源使用情况:

    Sensor提供了一种可视化的方式监控运行中的Spark进程,每个worker(Executor)及master(Driver)都具有各自的状态监控图,LogView中入口,如下图所示:

    image

    Basic Metrics

    下图提供了Master和Worker在其生命周期内的CPU和内存的使用情况:

    • cpu_usage图展示任务运行中的CPU利用率

    • memory_usage图展示任务运行中的Memory利用率

    • cpu_plan/mem_plan(蓝线)代表了用户申请的CPU和内存计划量

    image

    Memory Metrics

    下图提供了Spark任务运行所需的实际内存和磁盘中数据缓存所占内存。

    • mem_rss代表了进程所占用的常驻内存,这部分内存是Spark任务运行所使用的实际内存,通常需要关注,如果该内存超过申请的内存量,就可能会发生OOM,导致Driver/Executor进程终止。

      此外,该曲线也可以用于指导内存优化,如果实际使用量远远小于用户申请量,则可以减少内存申请,极大化利用资源,降低成本。

    • mem_cache(page_cache)用于将磁盘中的数据缓存到内存中,从而减少磁盘I/O操作,通常由系统进行管理,如果物理机内存充足,那么mem_cache可能会使用很多,用户可以不必关心该内存的分配和回收。

    image