https://github.com/msimonin/mesos-grid5000
Deploy mesos on grid'5000
https://github.com/msimonin/mesos-grid5000
Last synced: 3 months ago
JSON representation
Deploy mesos on grid'5000
- Host: GitHub
- URL: https://github.com/msimonin/mesos-grid5000
- Owner: msimonin
- License: mit
- Created: 2015-02-14T22:45:52.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-03-06T23:37:42.000Z (about 10 years ago)
- Last Synced: 2025-01-12T19:45:22.849Z (5 months ago)
- Language: Ruby
- Size: 211 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Mesos-grid5000
==============Deploy a Mesos/HDFS cluster on Grid'5000.
Inspired by http://mesosphere.com/docs/getting-started/datacenter/install/
Keywords : Grid'5000, puppet, capistrano, hiera, xp5k
# Deployment setup
Excerpt from ```config/deploy/xp5k.rb``` :
```ruby
MASTER = 3
SLAVE = 3
set :site, ENV['site'] || "toulouse"
set :walltime, ENV['walltime'] || "02:00:00"$myxp = XP5K::XP.new(:logger => logger)
$myxp.define_job({
:resources => ["nodes=#{MASTER + SLAVE}, walltime=#{walltime}"],
:site => "#{site}",
:retry => true,
:goal => "100%",
:types => ["deploy"],
:name => "init" ,
:roles => [
XP5K::Role.new({ :name => 'master', :size => MASTER }),
XP5K::Role.new({ :name => 'slave', :size => SLAVE }),
],
:command => "sleep 86400"
})
```* master nodes and zookeeper nodes are colocated
* quorum is set to MASTER/2 + 1
* HDFS namenode is deployed on the first master node
* HDFS datanodes are deployed on slave nodesCreate the file ```~/.xpm/connection.rb``` and adapt the following to your configuration:
```
set :g5k_user, "msimonin"
# gateway
set :gateway, "#{g5k_user}@access.grid5000.fr"
# # This key will used to access the gateway and nodes
ssh_options[:keys]= [File.join(ENV["HOME"], ".ssh", "id_rsa")]
# # This key will be installed on nodes
set :ssh_public, File.join(ENV["HOME"], ".ssh", "id_rsa.pub")
```# Play with mesos
* clone the repo
* launch ```bundle install``` (you better use ```rvm```)
* ```cap -T``` will show :```bash
cap automatic # Automatic deployment
cap clean # Remove all running jobs
cap deploy # Deploy with Kadeploy
cap describe # Describe the cluster
cap hdfs:create # format the HDFS
cap hdfs:start # Start the HDFS cluster
cap invoke # Invoke a single command on the remote servers.
cap mesos # Deploy mesos
cap mesos:puppet # Configure nodes using puppet
cap shell # Begin an interactive Capistrano session.
cap submit # Submit jobs
```Typical workflow :
* ```cap automatic```to deploy the Mesos and HDFS cluster
* ```cap hdfs:create hdfs:start``` to format and start the HDFS# Verify the installation
Please refer to http://mesosphere.com/docs/getting-started/datacenter/install/#verifying-installation
# License
See ```Licence``` file.
# Future
- [ ] Support docker isolation
- [ ] Allow deployment of frameworks (Hadoop, Aurora, Storm, Myriad)