1、Chronos来源
Chronos现在是一家初创公司 Mesosphere在维护,该公司的联合创始人是前Airbnb的工程师Florian Leibert(也曾在Twitter工作过)和Tobias Knaup。 Chronos在Airbnb是用来替代cron,是一个跑在mesos上的分布式的,可靠的调度scheduler。
Mesosphere公司相关信息大家可以到以下链接看看:
http://mesosphere.io/
2、Chronos架构
Chronos架在mesos上,负责定时任务触发,解决任务之间的重复调用,依赖关系。任务通过mesos提交给下面的Hive,Pig等框架执行,元数据存放在DB中。Chronos的可靠性依赖zookeeper解决。
3、chronos扩展性
Chronos借助mesos的master/slave架构,支持sh脚本,甚至通过异步的方式执行远端文件传输和脚本,可以通过扩展基本支持hadoop以及传统数据库,脚本等在本地和远端的执行调用。
支持标准的ISO8601的调度,可定义作业执行完成后的触发器,支持任意长度的依赖链。
4、功能特性
· 基于Web的UI
· 8601 Repeating Interval Notation
· Handles dependencies
· Job Stats (e.g. 50th, 75th, 95th and 99th percentile timing, failure/success)
· Fault Tolerance (Hot Master)
· Configurable Retries
· Multiple Workers (i.e. Mesos Slaves)
5、应用场景以及当前存在的问题:
(1)适合数据中心异构集群批任务(长周期,重复执行)统一调度和管理。
(2)可以通过Mesos承担统一管理资源,如果不需要mesos统一管理资源,mesos退化成通信框架。
(3)不适合对实时性要求高的任务(秒级),不适合单次执行触发的任务。
(4)Web UI还比较简陋,没有以图的方式显示任务的依赖关系。
(5)任务调度里面没有优先级。
(6)没有统计任务资源使用情况,调度信息反馈统计不足。
(7)没有调度自学习能力,不能自动调优调度效率。
6、项目主页:
http://airbnb.github.io/chronos/#Describing%20the%20Dependency%20Graph