全部产品
大数据开发套件

步骤5:运维及日志排错

更新时间:2017-09-19 21:32:44   分享:   

在之前的操作中,您配置了每周二凌晨 2 点执行同步任务,将任务提交后需要到第二天才能看到调度系统自动执行的结果,那么如何确认实例运行的定时时间和相互依赖关系符合预期呢?大数据开发套件提供了测试运行、补数据和周期运行 3 种触发方式,详情如下:

  • 测试运行:手动触发方式。如果您仅需确认单个任务的定时情况和运行,建议使用测试运行。

  • 补数据运行:手动触发方式。如果您需要确认多个任务的定时情况和相互依赖关系,或者需要从某个根任务开始重新执行数据分析计算,可以考虑使用此方式。

  • 周期运行:系统自动触发方式。提交成功的任务,调度系统在第二天0点起会自动生成当天不同时间点的运行实例,并在定时时间达到时检查各实例的上游实例是否运行成功,如果定时时间已到并且上游实例全部运行成功,则当前实例会自动触发运行,无需人工干预。

注意:

手动触发和自动调度的调度系统根据周期生成实例的规则一致:

  • 无论周期选择天/小时/分钟/月/周,任务在每一个日期都会有对应实例生成。

  • 仅在指定日期的对应实例会定时运行并生成运行日志。

  • 非指定日期的对应实例不会实际运行,而是在满足运行条件时将状态直接转换为成功,因此不会有运行日志生成。

本文将为您说明如何实现以上三种触发方式,具体操作见下文。关于任务运维的更多操作和功能说明,请参见 任务运维

测试运行

手动触发测试运行

  1. 单击工作流页面中的 测试运行 按钮,如下图所示:

    1

  2. 根据跳转页面的提示,单击 确认运行,如下图所示:

    11111

  3. 单击 前往运维中心 查看任务运行状态,如下图所示:

    1

查看测试实例的信息及运行日志

单击任务名,即可看到实例DAG图。在实例DAG视图中,右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。在实例DAG视图中,双击实例,即可弹出任务属性、运行日志、操作日志、代码等,如下图:

说明:

  • 测试运行是手动触发任务,只要定时时间到了,立即运行,无视实例的上游依赖关系。

  • 根据前文所述的实例生成规则,配置为每周二凌晨2点运行的任务 write_result,测试运行时选择的业务日期是周一(业务日期=运行日期-1),实例会在 2 点真正运行;如果不是周一,则实例在 2 点转换为成功状态,且没有日志生成。

补数据运行

手动触发补数据运行

若需要确认 多个任务 的定时情况和相互依赖关系,或者需要从某个根任务开始重新执行数据分析计算,可进入 运维中心 > 任务列表 > 周期任务 页面,选择任务,点击 补数据,来补跑某段时间的多个任务。

操作步骤

  1. 进入 运维中心 > 周期任务页面,输入任务名称。

  2. 选中任务查询结果,单击 补数据 按钮。如下图所示:

  3. 设置补数据的业务日期为 2017-09-11 到 2017-09-12 ,选择 write_result 节点任务,单击 确认。如下图所示:

  4. 单击 前往查看补数据结果

查看补数据实例的信息及运行日志

补数据实例 页面下找到任务实例:单击任务名,即可看到实例DAG图。在实例DAG视图中,右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。在实例DAG视图中,双击实例,即可弹出任务属性、运行日志、操作日志、代码等,如下图:

上图任务失败是因为,同步的表里,源头没有这个分区值,所以读取失败。

说明:

  • 补数据任务的实例是一天依赖一天的,比如:补了2017-09-15 到 2017-09-18 这段时间的任务,如果 15 号的实例运行失败了,则 16 号的实例也不会运行。

  • 根据前文所述的实例生成规则,配置为每周二凌晨2点运行的任务 write_result,补数据运行时选择的业务日期是周一(业务日期=运行日期-1),实例会在 2 点真正运行;如果不是周一,则实例在 2 点转换为成功状态,且没有日志生成。

周期自动运行

周期自动运行,由系统根据所有任务的调度配置自动触发,故页面没有操作入口。查看实例信息和运行日志有以下两种:

  • 进入 运维中心 > 周期实例 页面,选择业务日期或运行日期等参数,搜索 write_result 任务对应的实例,然后右键查看实例信息和运行日志。如下图所示:

  • 单击任务名,即可看到实例DAG图。在实例DAG视图中,右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。在实例DAG视图中,双击实例,即可弹出任务属性、运行日志、操作日志、代码等,如下图:

该任务未运行的原因是,上游任务未运行。

说明:

  • 若任务的实例初始状态为未运行,当定时时间到达时,调度系统会检查这个实例的全部上游实例是否运行成功。

  • 只有上游实例全部运行成功并且定时时间到达的实例,才会被触发运行。

  • 处于未运行状态的实例,请确认上游实例已经全部成功且已到定时时间。

本文导读目录
本文导读目录
以上内容是否对您有帮助?