Retz is a simple job queuing and execution service which runs on top of Mesos as a framework.
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 runningretz.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 nameretz.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.
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.
See and walk around doc
directory for documents.
- Please report any issues to repository for issue tracking
- Clone this repository
- Make a topic branch
- If it is a bugfix, add test(s) to reproduce the bug
- Add your your modification
- Make sure nothing is broken by running
make build inttest
- Commit with proper description in the commit message
- 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.