中间件 chronos

官方:https://github.com/airbnb/chronos

Chronos

Chronos is Airbnb's replacement for cron. It is a distributed and fault-tolerant scheduler that runs on top ofApache Mesos. You can use it to orchestrate jobs. It supports custom Mesos executors as well as the default command executor. Thus by default, Chronos executes sh (on most systems bash) scripts. Chronos can be used to interact with systems such as Hadoop (incl. EMR), even if the Mesos slaves on which execution happens do not have Hadoop installed. Included wrapper scripts allow transfering files and executing them on a remote machine in the background and using asynchronous callbacks to notify Chronos of job completion or failures.

Chronos has a number of advantages over regular cron. It allows you to schedule your jobs using ISO8601repeating interval notation, which enables more flexibility in job scheduling. Chronos also supports the definition of jobs triggered by the completion of other jobs. It supports arbitrarily long dependency chains.

Try out the interactive and personalized tutorial for Chronos.

For questions and discussions around Chronos, please use the Google Group "chronos-scheduler": Chronos Scheduler Group. Also join us on IRC in #mesos on freenode.

If you get an error while compiling Mesos, please consult the FAQ.

Features

  • 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)

Running Chronos

We've included some example run scripts, but the basic syntax for launching chronos is:

java -cp chronos.jar --master zk://127.0.0.1:2181/mesos --zk_hosts 127.0.0.1:2181 

Please note that you need to have both Mesos and Zookeeper running for this to work!

For more information on configuration options, please see configuring Chronos.

Example Run Scripts

Configuring Chronos

For information on configuring chronos, please see docs/CONFIG.md.

License

The use and distribution terms for this software are covered by the Apache 2.0 License (http://www.apache.org/licenses/LICENSE-2.0.html) which can be found in the file LICENSE at the root of this distribution. By using this software in any fashion, you are agreeing to be bound by the terms of this license. You must not remove this notice, or any other, from this software.

Contributors

Video Introduction

  • Replacing Cron & Building Scalable Data Pipelines: YouTube

Sample Architecture

architecture

Chronos UI

Chronos comes with a UI which can be used to add, delete, list, modify and run jobs. It can also show a graph of job dependencies. The screenshot should give you a good idea of what Chronos can do.

Chronos UI screenshot

Chronos UI screenshot new job

请使用浏览器的分享功能分享到微信等