任务管理与在线运维

前端控制台允许开发者可视化地进行任务增、删、改、查等管理操作,同时也能直观地看到任务的运行数据,包括运行状态、详情和在线日志等。以下为对控制台的详细介绍:

注:文中所有图片皆为高清大图,若觉得显示模糊,可以“右键 -> 在新链接中打开图片”查看。

主页

展示了系统整体的概览和集群Worker列表。

main

任务创建

创建需要被调度执行的任务,入口为主页 -> 任务管理 -> 新建任务

jobcreator

  • 任务名称:名称,便于记忆与搜索,无特殊用途,请尽量简短(占用数据库字段空间)

  • 任务描述:描述,无特殊作用,请尽量简短(占用数据库字段空间)

  • 任务参数:任务处理时能够获取到的参数(即各个Processor的process方法入参TaskContext对象的jobParams属性)(进行一次处理器开发就能理解了)

  • 定时信息:由下拉框和输入框组成

    • API -> 不需要填写任何参数(填了也不起作用)
    • CRON -> 填写 CRON 表达式(可以找个在线生成网站生成
    • 固定频率 -> 填写整数,单位毫秒
    • 固定延迟 -> 填写整数,单位毫秒
  • 执行配置:由执行类型(单机、广播和MapReduce)、处理器类型和处理器参数组成,后两项相互关联。

    • 内置Java处理器 -> 填写该处理器的全限定类名(eg, com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo
    • Java容器 -> 填写容器ID#处理器全限定类名(eg,18#com.github.kfcfans.oms.container.DemoProcessor
    • SHELL -> 填写需要处理的脚本(直接复制文件内容)或脚本下载链接(http://xxx)
    • PYTHON -> 填写完整的python脚本或下载链接(http://xxx)
  • 运行配置

    • 最大实例数:该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)
    • 单机线程并发数:该实例执行过程中每个Worker使用的线程数量(MapReduce任务生效,其余无论填什么,都只会使用必要的线程数…)
    • 运行时间限制:限定任务的最大运行时间,超时则视为失败,单位毫秒,0代表不限制超时时间。
  • 重试配置:

    • 任务重试次数:实例级别,失败了整个任务实例重试,会更换TaskTracker(本次任务实例的Master节点),代价较大,大型Map/MapReduce慎用。
    • 子任务重试次数:Task级别,每个子Task失败后单独重试,会更换ProcessorTracker(本次任务实际执行的Worker节点),代价较小,推荐使用。
    • 注:请注意同时配置任务重试次数和子任务重试次数之后的重试放大,比如对于单机任务来说,假如任务重试次数和子任务重试次数都配置了1且都执行失败,实际执行次数会变成4次!推荐任务实例重试配置为0,子任务重试次数根据实际情况配置。
  • 机器配置:用来标明允许执行任务的机器状态,避开那些摇摇欲坠的机器,0代表无任何限制。

    • 最低CPU核心数:填写浮点数,CPU可用核心数小于该值的Worker将不会执行该任务。
    • 最低内存(GB):填写浮点数,可用内存小于该值的Worker将不会执行该任务。
    • 最低磁盘(GB):填写浮点数,可用磁盘空间小于该值的Worker将不会执行该任务。
  • 集群配置

    • 执行机器地址:指定集群中的某几台机器执行任务(debug的好帮手),多值英文逗号分割,如192.168.1.1:27777,192.168.1.2:27777
    • 最大执行机器数量:限定调动执行的机器数量
  • 报警配置:选择任务执行失败后报警通知的对象,需要事先录入。

任务管理

直观地展示当前系统所管理的所有任务信息,并提供相应的运维方法。

jobManager

运行状态

直观地展示当前系统中运行任务实例的状态,点击详情即可获取详细的信息,点击日志可以查看通过omsLogger上报的日志,点击停止则可以强制终止该任务。

status

在线日志

在线查看Worker执行过程中上报的日志,极大降低debug成本,提升开发效率!

在线日志

上一页 下一页