blob: aaa7d35c3e87e1b2663611393d9cbd1d3d4140b7 [file] [log] [blame]
Hadoop On Demand
================
1. Introduction:
================
The Hadoop On Demand (HOD) project is a system for provisioning and
managing independent Hadoop MapReduce instances on a shared cluster
of nodes. HOD uses a resource manager for allocation. At present it
supports Torque (http://www.clusterresources.com/pages/products/torque-resource-manager.php)
out of the box.
2. Feature List:
================
The following are the features provided by HOD:
2.1 Simplified interface for managing MapReduce clusters:
The MapReduce user interacts with the cluster through a simple
command line interface, the HOD client. HOD brings up a virtual
MapReduce cluster with the required number of nodes, which the
user can use for running Hadoop jobs. When done, HOD will
automatically clean up the resources and make the nodes available
again.
2.2 Automatic installation of Hadoop:
With HOD, Hadoop does not need to be even installed on the cluster.
The user can provide a Hadoop tarball that HOD will automatically
distribute to all the nodes in the cluster.
2.3 Configuring Hadoop:
Dynamic parameters of Hadoop configuration, such as the NameNode and
JobTracker addresses and ports, and file system temporary directories
are generated and distributed by HOD automatically to all nodes in
the cluster.
In addition, HOD allows the user to configure Hadoop parameters
at both the server (for e.g. JobTracker) and client (for e.g. JobClient)
level, including 'final' parameters, that were introduced with
Hadoop 0.15.
2.4 Auto-cleanup of unused clusters:
HOD has an automatic timeout so that users cannot misuse resources they
aren't using. The timeout applies only when there is no MapReduce job
running.
2.5 Log services:
HOD can be used to collect all MapReduce logs to a central location
for archiving and inspection after the job is completed.
3. HOD Components
=================
This is a brief overview of the various components of HOD and how they
interact to provision Hadoop.
HOD Client: The HOD client is a Unix command that users use to allocate
Hadoop MapReduce clusters. The command provides other options to list
allocated clusters and deallocate them. The HOD client generates the
hadoop-site.xml in a user specified directory. The user can point to
this configuration file while running Map/Reduce jobs on the allocated
cluster.
RingMaster: The RingMaster is a HOD process that is started on one node
per every allocated cluster. It is submitted as a 'job' to the resource
manager by the HOD client. It controls which Hadoop daemons start on
which nodes. It provides this information to other HOD processes,
such as the HOD client, so users can also determine this information.
The RingMaster is responsible for hosting and distributing the
Hadoop tarball to all nodes in the cluster. It also automatically
cleans up unused clusters.
HodRing: The HodRing is a HOD process that runs on every allocated node
in the cluster. These processes are run by the RingMaster through the
resource manager, using a facility of parallel execution. The HodRings
are responsible for launching Hadoop commands on the nodes to bring up
the Hadoop daemons. They get the command to launch from the RingMaster.
Hodrc / HOD configuration file: An INI style configuration file where
the users configure various options for the HOD system, including
install locations of different software, resource manager parameters,
log and temp file directories, parameters for their MapReduce jobs,
etc.
Submit Nodes: Nodes where the HOD Client is run, from where jobs are
submitted to the resource manager system for allocating and running
clusters.
Compute Nodes: Nodes which get allocated by a resource manager,
and on which the Hadoop daemons are provisioned and started.
4. Next Steps:
==============
- Read getting_started.txt to get an idea of how to get started with
installing, configuring and running HOD.
- Read config.txt to get more details on configuration options for HOD.