Dataproc 作业的生命周期

本页面介绍了提交,执行和完成 Dataproc 作业所涉及的步骤顺序。文中还讨论了作业限制和调试。

Dataproc 作业流程

  1. 用户将作业提交给 Dataproc。
  2. 作业等待被 dataproc 代理获取。
    • 如果作业被获取,那JobStatus.State 会被标记为 RUNNING
    • 如果由于代理故障、Compute Engine 网络故障或其他原因而未获取作业,则作业将被标记为 ERROR
  3. 代理获取作业后,代理将验证 Dataproc 集群的主实例节点是否有足够的可用资源来启动驱动程序。
  4. 如果有足够的可用资源,dataproc 代理将启动作业驱动程序流程。
    • 在此阶段,通常有一个或多个应用在 Apache Hadoop YARN 中运行。但是,在驱动程序扫描完 Cloud Storage 目录或执行完其他启动作业任务之前,Yarn 应用可能无法启动。
  5. dataproc 代理会定期向 Dataproc 发送有关作业进度、集群指标以及与作业关联的 Yarn 应用的最新动态(请参阅作业监控和调试)。
  6. Yarn 应用完成。
    • 在驱动程序执行任何作业完成任务(例如实质化集合)时,作业会继续被报告为 RUNNING
    • 主线程中未处理或未捕获的故障可能会使驱动程序处于僵化状态(标记为 RUNNING,但不提供与故障原因有关的信息)。
  7. 驱动程序退出。 dataproc 代理向 Dataproc 报告作业已完成。
    • Dataproc 将作业报告为 DONE

作业并发

在创建集群时,您可以使用 dataproc:dataproc.scheduler.max-concurrent-jobs 集群属性配置并发 Dataproc 作业数量的上限。如果未设置此属性值,则并发作业数量上限的计算公式为 max((masterMemoryMb - 3584) / masterMemoryMbPerJob, 5)masterMemoryMb 由主虚拟机的机器类型确定。masterMemoryMbPerJob 默认为 1024,不过您可以在创建集群时使用 dataproc:dataproc.scheduler.driver-size-mb 集群属性对其进行配置。

后续步骤