Home

Awesome

mesos-go-stateful

An abstraction on top of mesos-go for steteful workload

Sample Run

  1. Download the codegen Package
$go get -v github.com/huawei-cloudfederation/mesos-go-stateful/codegen
github.com/samuel/go-zookeeper (download)
.
.
.
github.com/huawei-cloudfederation/mesos-go-stateful/common/types
github.com/huawei-cloudfederation/mesos-go-stateful/codegen
  1. codegen utility would have been installed
$codegen -h
Usage of codegen:
  -alsologtostderr
        log to standard error as well as files
  -log_backtrace_at value
        when logging hits line file:N, emit a stack trace (default :0)
  -log_dir string
        If non-empty, write log files in this directory
  -logtostderr
        log to standard error instead of files
  -name string
        Name of the scheduler eg: RedisScheduler or MySQLScheduler (default "Example")
  -path string
        Path where the project needs to be created (default "./")
  -stderrthreshold value
        logs at or above this threshold go to stderr
  -v value
        log level for V logs
  -vmodule value
        comma-separated list of pattern=N settings for file-filtered logging
  1. Create a Project for MySQL Stateful Framework
codegen -name MySQL -path /home/ubuntu/workdir
I1113 05:19:45.377934    7471 gen.go:129] Creating Sub-directories at /home/ubuntu/workdir/MySQL.....
I1113 05:19:45.378115    7471 gen.go:153] Generating Scheduler.go...
I1113 05:19:45.378363    7471 gen.go:171] Generating autofilled config file
I1113 05:19:45.378545    7471 gen.go:192] Project Generation Completed
  1. Examine the Project
$~/workdir$ ls -lrt MySQL
drwxrwxr-x 2 ubuntu ubuntu 4096 Nov 13 05:19 Scheduler
 |-- -rw-rw-r-- 1 ubuntu ubuntu 1771 Nov 13 05:19 Scheduler.go
drwxrwxr-x 2 ubuntu ubuntu 4096 Nov 13 05:19 Executor
drwxrwxr-x 2 ubuntu ubuntu 4096 Nov 13 05:19 Config
 |-- -rw-rw-r-- 1 ubuntu ubuntu 430 Nov 13 05:19 config.json
  1. Update the auto generated config file Config/config.json with your Mesos and etcd/zookeprs endpoint Build the autogenerated Scheduler
$cd /MySQL/Scheduler
$go get -v ./...
$go build Scheduler.go
$./Scheduler
I1113 05:53:29.618408    6816 Scheduler.go:84] Scheduler terminated
I1113 05:53:29.618961    6816 sched.go:35] Configuration file is = {root RedMon 10.11.12.18:5050 /home/ubuntu/RedMon/Executor/RedMonExecutor etcd http://127.0.0.1:2379 stderr 127.0.0.1 5454 5656 {1 100 1 host }}
I1113 05:53:29.618987    6816 sched.go:55] *****************************************************************
I1113 05:53:29.619000    6816 sched.go:56] *********************Starting Scheduler******************
I1113 05:53:29.619024    6816 sched.go:57] *****************************************************************
I1113 05:53:29.699301    6816 sched.go:74] Configuration file is = {root RedMon 127.0.0.1:5050 /home/ubuntu/RedMon/Executor/RedMonExecutor etcd http://127.0.0.1:2379 stderr 127.0.0.1 5454 5656 {1 100 1 host }}
I1113 05:53:29.699465    6816 httplib.go:84] Starting the HTTP server at port 5656
I1113 05:53:29.699550    6816 mesoslib.go:37] Hosting artifact '5454' at 'http://127.0.0.1:5454/5454'
I1113 05:53:29.700086    6816 mesoslib.go:59] hostIP = 127.0.0.1 going to listen and serve
I1113 05:53:29.701431    6816 mesoslib.go:144] framework id is 9a781c1c-4609-47fa-84ff-d3191ad1634a-0067/Workload/Config
I1113 05:53:29.701539    6816 mesoslib.go:151] Delta of the previously registered framework is = 24h36m34.227297928s
2016/11/13 05:53:29 [I] http server Running on http://:5656
I1113 05:53:29.705719    6816 scheduler.go:334] Initializing mesos scheduler driver
I1113 05:53:29.705850    6816 mesoslib.go:209] The Framework ID is &FrameworkID{Value:*,XXX_unrecognized:[],} and &FrameworkID{Value:*,XXX_unrecognized:[],}
I1113 05:53:29.705887    6816 scheduler.go:833] Starting the scheduler driver...
I1113 05:53:29.705939    6816 http_transporter.go:383] listening on 127.0.0.1 port 38371
I1113 05:53:29.706020    6816 scheduler.go:850] Mesos scheduler driver started with PID=scheduler(1)@127.0.0.1:38371
I1113 05:53:29.706048    6816 scheduler.go:1053] Scheduler driver running.  Waiting to be stopped.
I1113 05:53:29.726799    6816 scheduler.go:419] New master master@127.0.0.1:5050 detected
I1113 05:53:29.726840    6816 scheduler.go:483] No credentials were provided. Attempting to register scheduler without authentication.

Now a basic framework with HTTP CURD/Mesos communication / KV store is ready