加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

在Mesos上使用Chronos运行计划任务

发布时间:2021-01-13 09:28:38 所属栏目:电商 来源:网络整理
导读:《在Mesos上使用Chronos运行计划任务》要点: 本文介绍了在Mesos上使用Chronos运行计划任务,希望对您有用。如果有疑问,可以联系我们。 题图:By Ellie Pritts From Unsplash Chronost简介 Chronos是由Airbnb公司推出的用来替代Cron的开源产品,这是一个用来
副标题[/!--empirenews.page--]

《在Mesos上使用Chronos运行计划任务》要点:
本文介绍了在Mesos上使用Chronos运行计划任务,希望对您有用。如果有疑问,可以联系我们。

题图:By Ellie Pritts From Unsplash

Chronost简介

Chronos是由Airbnb公司推出的用来替代Cron的开源产品,这是一个用来运行基于容器定时任务的Mesos框架.Chronos可处理依赖性和基于ISO8601的调度,你可以用它来对作业进行编排.支持使用Mesos作为作业执行器,支持和Hadoop进行交互.可定义作业执行完成后的触发器.支持任意长度的依赖链.

由于Chronos以ISO8601时间规范作为定时任务的执行时间配置,所以理解这个时间规范对配置Chronos定时任务至关重要.这里我们就简单看下ISO8601的规则:

  • 所有字母都是大写,无论用来做什么的.
  • 日期写成2012-02-05或者20120205都OK.
  • 时间需要用字母T开始,比如:T08:00:00或者T080000.
  • 时间末尾用Z表示UTC时间,用+08:00这种表示在UTC时间基础上偏移的时间(+08:00是中国的时区)
  • 字母P表示一段时间,常用于表达执行任务的间隔.比如:P10M表示10个月的时长,而PT10M是10分钟的时长,因为T开头表示的时间,非T开头表示的是日期.
  • R表示从A时间到B时间之间,每间隔C时长,执行一次.

更详细的ISO 8601介绍可参考:https://zh.wikipedia.org/zh-hans/ISO_8601

Chronos工作原理

Chronos以Framework身份接入Mesos,支持Zookeeper选举高可用,同时将所有的定时任务配置存储在Zookeeper里.

Chronos的工作流程描述如下:

  1. 从ZK获取全部的任务列表.
  2. 以Scheduler身份接入到Mesos,分析任务的执行依赖.
  3. 分析出需要立即执行的任务和暂时不需要执行的任务.
  4. 将需要立即执行的任务放入执行队列,等待Mesos offer足够的资源.
  5. 等待执行队列中的一个任务被执行,再次回到步骤1.

项目地址:https://github.com/mesos/chronos

安装Chronos

在安装Chronos前你必须有一个Mesos集群环境,有关Mesos集群搭建你可以参考「使用Mesos和Marathon管理Docker集群」一文,这里就不再讲述了.

这里是在之前集群环境基础上搭建,所以在dev-master-01上安装Chronos.

通过软件包安装

  • Ubuntu and Debian系统

  • RedHat and CentOS系统

  • 启动相关服务

通过Docker安装

由于Ubuntu 16.04不支持包安装,这里直接用官方的Docker镜像运行Chronos.

  1. 网络模式使用host,这样Docker容器将共享宿主机的网络namespace,这是因为我们需要的仅仅是Docker的执行环境,并不是网络隔离.
  2. zk_hosts是给Chronos保存任务数据和进行Leader选举的存储目录.
  3. Master是Mesos-master的ZK存储地址,这样Chronos才可以找到Master并注册上去.
  4. 环境变量PORT0=8000是Chronos的HTTP接口,也是Web UI的地址,PORT1=8001用于Libprocess.
  • 验证是否安装成功

查看Docker容器是否正常运行

查看相应端口是否正常

  • 访问Chronos的Web管理界面

Chronos的最新版本是v3.x,它对之前的2.x版本进行了重写,导致目前3.x的Web UI界面极其简陋,仅仅提供了基础的任务启停和配置功能.

Chronos默认是监听在4400端口,这里使用了自定义端口为8000.通过使用http://ip:8000/来访问.如下图所示:

使用Chronos

  • 使用Web界面创建任务

在Chronos页面,点击”ADD JOB—Scheduled”并填入以下相关信息来创建一个任务,如下图:

Name:Test-Chronos
Command: sleep 30
Schedule:R/2017-05-04T03:26:00.000Z/PT24H

注意:时间格式是ISO 8601表示法,时间是UTC时间.如果要加上时区可以这样写:R/2017-05-04T14:25:00.000+08:00/PT24H.这样就表示中国时区,+08:00是中国的时区.

在Chronos页面,查看任务执行的情况

 

在Mesos页面,查看任务执行的情况.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读