https://github.com/tobilg/mesos-js-framework
[DEPRECATED] Use https://github.com/tobilg/mesos-framework instead
https://github.com/tobilg/mesos-js-framework
Last synced: 10 months ago
JSON representation
[DEPRECATED] Use https://github.com/tobilg/mesos-framework instead
- Host: GitHub
- URL: https://github.com/tobilg/mesos-js-framework
- Owner: tobilg
- Archived: true
- Created: 2016-03-23T14:00:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2016-03-24T15:13:41.000Z (over 10 years ago)
- Last Synced: 2025-04-13T12:00:01.671Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 2.51 MB
- Stars: 8
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mesos-js-framework
This project is a proof-of-concept implementation of a Mesos framework in JavaScript via the fabulous [node-java](https://github.com/joeferner/node-java) bridge.
It will start three [tobilg/docker-mini-webserver](https://github.com/tobilg/docker-mini-webserver) Docker images as tasks on the Mesos cluster.
### Status
This framework is for demo purposes only, and just meant to show that it's possible to write a Mesos framework in JavaScript via a JNI bridge.
## Installation
### Clone the Vagrant CoreOS Mesos cluster and start the cluster
git clone https://github.com/tobilg/coreos-mesos-cluster.git && cd coreos-mesos-cluster && vagrant up
### Clone the project and install dependencies
git clone https://github.com/tobilg/mesos-js-framework.git && cd mesos-js-framework && npm install
## Running
You can test this via Vagrant and the [tobilg/coreos-mesos-cluster](https://github.com/tobilg/coreos-mesos-cluster) project, which starts a three node CoreOS cluster with ZooKeeper 3.4.6, Mesos 0.27.0 (masters and slaves) and Marathon.
This will expose the addresses `172.17.8.101`, `172.17.8.102` and `172.17.8.103`. To connect the framework to the cluster, you can use the Mesos master URL `zk://172.17.8.101:2181,172.17.8.102:2181,172.17.8.103:2181/mesos`.
### Running the framework locally
Before you can test the framework, please make sure that you have at least a JDK (version 7 or 8) and Mesos 0.27.x installed. The framework needs the `libmesos.so` library to be available either on the path or via the `MESOS_NATIVE_JAVA_LIBRARY` environment variable.
You need to make sure that the `LIBPROCESS_IP` is set to a reachable IP address on you local machine, e.g. on Mac OS via
export LIBPROCESS_IP=$(ipconfig getifaddr en0)
where `en0` is the respective interface.
To start the framework, use the following command:
MESOS_ZK_CONNECTION=zk://172.17.8.101:2181,172.17.8.102:2181,172.17.8.103:2181/mesos node mesos-js-framework.js
This framework will start three [tobilg/docker-mini-webserver](https://github.com/tobilg/docker-mini-webserver) Docker images. Each will be reachable on port `8888` on the Mesos slaves, e.g. [http://172.17.8.102:8888/status](http://172.17.8.102:8888/status).
You should then see the framework in the Mesos master's framework page.
### Running the framework via Marathon
```bash
curl -XPOST 'http://172.17.8.102:8080/v2/apps' -H 'Content-Type: application/json' -d '{
"id": "mesos-js-framework",
"env": {
"MESOS_ZK_CONNECTION": "zk://172.17.8.101:2181,172.17.8.102:2181,172.17.8.103:2181/mesos",
"LIBPROCESS_IP": "172.17.8.102"
},
"container": {
"type": "DOCKER",
"docker": {
"network": "HOST",
"image": "tobilg/mesos-js-framework",
"forcePullImage": true
}
},
"cpus": 0.5,
"mem": 256,
"instances": 1,
"constraints": [["hostname", "CLUSTER", "172.17.8.102"]]
}'
```