Git Product home page Git Product logo

vhm's Introduction

VHM

vHadoop Runtime Manager

This component is responsible enabling and disabling hadoop compute nodes based on the demand. Specifically, VHM implements the "limit" and "unlimit" Serengeti commands. The limit command specifies how many compute nodes should be enabled, and unlimit enables all the provisioned compute nodes for the given cluster or node group.

When a user issues these commands, the serengeti web server passes the command to VHM over the rabbit message bus using JSON format. Here are the fields in the message:

  int version;          // currently at version 1 
  String cluster_name;  // name of VM folder
  String jobtracker;    // IP address of jobtracker
  int instance_num;     // number of desired instances (-1 for unlimit)
  String[] node_groups; // list of nodegroups (vm folders) on which to apply the setting
  String serengeti_instance; // VM folder for the instance of serengeti that sent the command

VHM first figures out the number of currently enabled hadoop nodes by checking the vCenter inventory. It navigates the vCenter VM folder hierarchy by starting at serengeti_instance folder, then looking for cluster_name subfolder, and the node_groups subfolders underneath the cluster_name. VHM will then either enable or disable hadoop nodes to meet the desired number (instance_num). If instance_num is -1 (used by unlimit command), then all provisioned hadoop nodes for the specified node_groups are enabled.

VHM supports multiple enable/disable policies, but the default implementation of disable is to first decommissions the compute node from the JobTracker, then powers down the VM. The default implementation for enable is to recommission the node from JobTracker, and then power on the VM.

While processing the command, VHM will report percentage done progress updates to Serengeti, and it will also report any errors that were encountered in the process. Here are the fields of the return message to Serengeti:

  Boolean finished;
  Boolean succeed;
  int progress;
  int error_code;
  String error_msg;

vhm's People

Contributors

hickeng avatar wjun avatar anneholler avatar qhli avatar junxiaotime avatar emlin avatar xiaodingbian 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.