Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/huawei-cloudfederation/mesos-go-stateful

An abstraction on top of mesos-go for steteful workload
https://github.com/huawei-cloudfederation/mesos-go-stateful

Last synced: 2 months ago
JSON representation

An abstraction on top of mesos-go for steteful workload

Lists

README

        

# 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
```

2) `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
```

3) 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
```

4) 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
```

5) 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 [email protected]: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