Giter VIP home page Giter VIP logo

mesos-grid5000's Introduction

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 :

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 nodes

Create 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 :
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 automaticto 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)

mesos-grid5000's People

Contributors

msimonin avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.