Skip to content
forked from retz/retz

A simple job queuing and execution service which runs on top of Mesos as a framework

License

Notifications You must be signed in to change notification settings

nautilus-sekiguchi/retz

 
 

Repository files navigation

Retz

Retz is a simple job queuing and execution service which runs on top of Mesos as a framework.

Getting Started

Retz needs JDK8 to build.

$ git clone https://github.com/retz/retz
$ cd retz
$ make deb

or run make rpm for RPM-managed environment like Red Hat, Fedora, CentOS Linux.

Retz requires Mesos ( >= 1.0) running (see staring Mesos ), optionally libnuma for its runtime. To check Mesos version, run mesos-master --version.

Install the server:

# sudo dpkg -i retz-server-x.y.z.deb

Edit /opt/retz-server/etc/retz.properties according to your environment:

  • retz.mesos = 192.168.100.128:5050 - A pair of IP address and port number where Mesos master is listening to. Thus Mesos master must be running
  • retz.bind = http://localhost:9090 - An URL of host name and port number where Retz will bind and start Web server (port number must be > 1024)
  • retz.mesos.principal = retz - Mesos principal name
  • retz.mesos.role = retz - Role name in Mesos

Retz is a program that runs just in foreground. To start Retz in console, type

# /opt/retz-server/bin/retz-server

And you can find Retz server started up by opening the web console. If you want Retz server daemonized, use external daemonization system like supervisord.

Or to run without installation, just run

$ bin/retz-server

in your repository.

To run basic test, follow this with /opt/retz-client/bin in your $PATH environment variable and edit /opt/retz-client/etc/retz.properties as well as server. To test your Retz setup, run

$ retz-client load-app -A test
$ retz-client run -A test -cmd 'uname -a'

and you'll have result of uname -a in some arbitrary Mesos Agent node.

Kick a job with resources allocated via Retz Mesos framework

Make your application loaded on Retz:

$ retz-client load-app -A your-app-name -F http://example.com/path/to/your/application.tar.gz

With -F option, any type of files is automatically downloaded by mesos and the file is cached in the Agent node. In addition to http, hdfs is also available. With subcommand retz-client list-app you'll see your application is registered to Retz. To run a job via Retz scheduler:

$ retz-client run -A your-app-name -cmd 'relative/path/to/your/bin/cmd -some-args' -R -

where cmd is included in your application tar ball. Then you'll get results printed at standard output of your console. The result is also available via Mesos sandbox UI. run is a synchronous execution subcommand while schedule is an asynchronous execution subcommand.

Documentation

See and walk around doc directory for documents.

Related Projects

Reporting issues

How to contribute

  1. Clone this repository
  2. Make a topic branch
  3. If it is a bugfix, add test(s) to reproduce the bug
  4. Add your your modification
  5. Make sure nothing is broken by running make build inttest
  6. Commit with proper description in the commit message
  7. Open a pull request to Retz repository
  • By opening a pull request, we assume the contributor has agreed to donate all copyright of the patch to the original author Nautilus Technologies and agreed not to claim any intellectual properties in the patch.

License

About

A simple job queuing and execution service which runs on top of Mesos as a framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 95.3%
  • Shell 2.5%
  • Other 2.2%