<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.8">
<meta name="Forrest-skin-name" content="pelt">
<title>
      Hadoop On Demand User Guide
    </title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
    |breadtrail
    +-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://hadoop.apache.org/">Hadoop</a> &gt; <a href="http://hadoop.apache.org/core/">Core</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
    |header
    +-->
<div class="header">
<!--+
    |start group logo
    +-->
<div class="grouplogo">
<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
</div>
<!--+
    |end group logo
    +-->
<!--+
    |start Project Logo
    +-->
<div class="projectlogo">
<a href="http://hadoop.apache.org/core/"><img class="logoImage" alt="Hadoop" src="images/core-logo.gif" title="Scalable Computing Platform"></a>
</div>
<!--+
    |end Project Logo
    +-->
<!--+
    |start Search
    +-->
<div class="searchbox">
<form action="http://www.google.com/search" method="get" class="roundtopsmall">
<input value="hadoop.apache.org" name="sitesearch" type="hidden"><input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google">&nbsp; 
                    <input name="Search" value="Search" type="submit">
</form>
</div>
<!--+
    |end search
    +-->
<!--+
    |start Tabs
    +-->
<ul id="tabs">
<li>
<a class="unselected" href="http://hadoop.apache.org/core/">Project</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/hadoop">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Hadoop 0.17 Documentation</a>
</li>
</ul>
<!--+
    |end Tabs
    +-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
    |start Subtabs
    +-->
<div id="level2tabs"></div>
<!--+
    |end Endtabs
    +-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<!--+
    |breadtrail
    +-->
<div class="breadtrail">

             &nbsp;
           </div>
<!--+
    |start Menu, mainarea
    +-->
<!--+
    |start Menu
    +-->
<div id="menu">
<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Documentation</div>
<div id="menu_1.1" class="menuitemgroup">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="quickstart.html">Quickstart</a>
</div>
<div class="menuitem">
<a href="cluster_setup.html">Cluster Setup</a>
</div>
<div class="menuitem">
<a href="hdfs_design.html">HDFS Architecture</a>
</div>
<div class="menuitem">
<a href="hdfs_user_guide.html">HDFS User Guide</a>
</div>
<div class="menuitem">
<a href="hdfs_shell.html">HDFS Shell Guide</a>
</div>
<div class="menuitem">
<a href="hdfs_permissions_guide.html">HDFS Permissions Guide</a>
</div>
<div class="menuitem">
<a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
</div>
<div class="menuitem">
<a href="native_libraries.html">Native Hadoop Libraries</a>
</div>
<div class="menuitem">
<a href="streaming.html">Streaming</a>
</div>
<div class="menuitem">
<a href="hod.html">Hadoop On Demand</a>
</div>
<div class="menuitem">
<a href="api/index.html">API Docs</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/hadoop/">Wiki</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/hadoop/FAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="http://hadoop.apache.org/core/mailing_lists.html">Mailing Lists</a>
</div>
<div class="menuitem">
<a href="releasenotes.html">Release Notes</a>
</div>
<div class="menuitem">
<a href="changes.html">All Changes</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
  |alternative credits
  +-->
<div id="credit2"></div>
</div>
<!--+
    |end Menu
    +-->
<!--+
    |start content
    +-->
<div id="content">
<div title="Portable Document Format" class="pdflink">
<a class="dida" href="hod_user_guide.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
        PDF</a>
</div>
<h1>
      Hadoop On Demand User Guide
    </h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Introduction-N1000C"> Introduction </a>
</li>
<li>
<a href="#Getting+Started+Using+HOD"> Getting Started Using HOD </a>
<ul class="minitoc">
<li>
<a href="#A+typical+HOD+session">A typical HOD session</a>
</li>
<li>
<a href="#Running+hadoop+scripts+using+HOD">Running hadoop scripts using HOD</a>
</li>
</ul>
</li>
<li>
<a href="#HOD+Features"> HOD Features </a>
<ul class="minitoc">
<li>
<a href="#Provisioning+and+Managing+Hadoop+Clusters"> Provisioning and Managing Hadoop Clusters </a>
</li>
<li>
<a href="#Using+a+tarball+to+distribute+Hadoop"> Using a tarball to distribute Hadoop </a>
</li>
<li>
<a href="#Using+an+external+HDFS"> Using an external HDFS </a>
</li>
<li>
<a href="#Options+for+Configuring+Hadoop"> Options for Configuring Hadoop </a>
</li>
<li>
<a href="#Viewing+Hadoop+Web-UIs"> Viewing Hadoop Web-UIs </a>
</li>
<li>
<a href="#Collecting+and+Viewing+Hadoop+Logs"> Collecting and Viewing Hadoop Logs </a>
</li>
<li>
<a href="#Auto-deallocation+of+Idle+Clusters"> Auto-deallocation of Idle Clusters </a>
</li>
<li>
<a href="#Specifying+Additional+Job+Attributes"> Specifying Additional Job Attributes </a>
</li>
<li>
<a href="#Capturing+HOD+exit+codes+in+Torque"> Capturing HOD exit codes in Torque </a>
</li>
<li>
<a href="#Command+Line"> Command Line</a>
</li>
<li>
<a href="#Options+Configuring+HOD"> Options Configuring HOD </a>
</li>
</ul>
</li>
<li>
<a href="#Troubleshooting-N10576"> Troubleshooting </a>
<ul class="minitoc">
<li>
<a href="#Hangs+During+Allocation">hod Hangs During Allocation </a>
</li>
<li>
<a href="#Hangs+During+Deallocation">hod Hangs During Deallocation </a>
</li>
<li>
<a href="#Fails+With+an+error+code+and+error+message">hod Fails With an error code and error message </a>
</li>
<li>
<a href="#Hadoop+Jobs+Not+Running+on+a+Successfully+Allocated+Cluster"> Hadoop Jobs Not Running on a Successfully Allocated Cluster </a>
</li>
<li>
<a href="#My+Hadoop+Job+Got+Killed"> My Hadoop Job Got Killed </a>
</li>
<li>
<a href="#Hadoop+Job+Fails+with+Message%3A+%27Job+tracker+still+initializing%27"> Hadoop Job Fails with Message: 'Job tracker still initializing' </a>
</li>
<li>
<a href="#The+Exit+Codes+For+HOD+Are+Not+Getting+Into+Torque"> The Exit Codes For HOD Are Not Getting Into Torque </a>
</li>
<li>
<a href="#The+Hadoop+Logs+are+Not+Uploaded+to+DFS"> The Hadoop Logs are Not Uploaded to DFS </a>
</li>
<li>
<a href="#Locating+Ringmaster+Logs"> Locating Ringmaster Logs </a>
</li>
<li>
<a href="#Locating+Hodring+Logs"> Locating Hodring Logs </a>
</li>
</ul>
</li>
</ul>
</div>
  
<a name="N1000C"></a><a name="Introduction-N1000C"></a>
<h2 class="h3"> Introduction </h2>
<div class="section">
<a name="Introduction" id="Introduction"></a>
<p>Hadoop On Demand (HOD) is a system for provisioning virtual Hadoop clusters over a large physical cluster. It uses the Torque resource manager to do node allocation. On the allocated nodes, it can start Hadoop Map/Reduce and HDFS daemons. It automatically generates the appropriate configuration files (hadoop-site.xml) for the Hadoop daemons and client. HOD also has the capability to distribute Hadoop to the nodes in the virtual cluster that it allocates. In short, HOD makes it easy for administrators and users to quickly setup and use Hadoop. It is also a very useful tool for Hadoop developers and testers who need to share a physical cluster for testing their own Hadoop versions.</p>
<p>HOD supports Hadoop from version 0.15 onwards.</p>
<p>The rest of the documentation comprises of a quick-start guide that helps you get quickly started with using HOD, a more detailed guide of all HOD features, command line options, known issues and trouble-shooting information.</p>
</div>
  
<a name="N1001E"></a><a name="Getting+Started+Using+HOD"></a>
<h2 class="h3"> Getting Started Using HOD </h2>
<div class="section">
<a name="Getting_Started_Using_HOD_0_4" id="Getting_Started_Using_HOD_0_4"></a>
<p>In this section, we shall see a step-by-step introduction on how to use HOD for the most basic operations. Before following these steps, it is assumed that HOD and its dependent hardware and software components are setup and configured correctly. This is a step that is generally performed by system administrators of the cluster.</p>
<p>The HOD user interface is a command line utility called <span class="codefrag">hod</span>. It is driven by a configuration file, that is typically setup for users by system administrators. Users can override this configuration when using the <span class="codefrag">hod</span>, which is described later in this documentation. The configuration file can be specified in two ways when using <span class="codefrag">hod</span>, as described below: </p>
<ul>
    
<li> Specify it on command line, using the -c option. Such as <span class="codefrag">hod &lt;operation&gt; &lt;required-args&gt; -c path-to-the-configuration-file [other-options]</span>
</li>
    
<li> Set up an environment variable <em>HOD_CONF_DIR</em> where <span class="codefrag">hod</span> will be run. This should be pointed to a directory on the local file system, containing a file called <em>hodrc</em>. Note that this is analogous to the <em>HADOOP_CONF_DIR</em> and <em>hadoop-site.xml</em> file for Hadoop. If no configuration file is specified on the command line, <span class="codefrag">hod</span> shall look for the <em>HOD_CONF_DIR</em> environment variable and a <em>hodrc</em> file under that.</li>
    
</ul>
<p>In examples listed below, we shall not explicitly point to the configuration option, assuming it is correctly specified.</p>
<a name="N1005B"></a><a name="A+typical+HOD+session"></a>
<h3 class="h4">A typical HOD session</h3>
<a name="HOD_Session" id="HOD_Session"></a>
<p>A typical session of HOD will involve at least three steps: allocate, run hadoop jobs, deallocate. In order to do this, perform the following steps.</p>
<p>
<strong> Create a Cluster Directory </strong>
</p>
<a name="Create_a_Cluster_Directory" id="Create_a_Cluster_Directory"></a>
<p>The <em>cluster directory</em> is a directory on the local file system where <span class="codefrag">hod</span> will generate the Hadoop configuration, <em>hadoop-site.xml</em>, corresponding to the cluster it allocates. Create this directory and pass it to the <span class="codefrag">hod</span> operations as stated below. Once a cluster is allocated, a user can utilize it to run Hadoop jobs by specifying the cluster directory as the Hadoop --config option. </p>
<p>
<strong> Operation <em>allocate</em></strong>
</p>
<a name="Operation_allocate" id="Operation_allocate"></a>
<p>The <em>allocate</em> operation is used to allocate a set of nodes and install and provision Hadoop on them. It has the following syntax. Note that it requires a cluster_dir ( -d, --hod.clusterdir) and the number of nodes (-n, --hod.nodecount) needed to be allocated:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes [OPTIONS]</span></td>
        
</tr>
      
    
</table>
<p>If the command completes successfully, then <span class="codefrag">cluster_dir/hadoop-site.xml</span> will be generated and will contain information about the allocated cluster. It will also print out the information about the Hadoop web UIs.</p>
<p>An example run of this command produces the following output. Note in this example that <span class="codefrag">~/hod-clusters/test</span> is the cluster directory, and we are allocating 5 nodes:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
    
<tr>
      
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d ~/hod-clusters/test -n 5</span>
<br>
      
<span class="codefrag">INFO - HDFS UI on http://foo1.bar.com:53422</span>
<br>
      
<span class="codefrag">INFO - Mapred UI on http://foo2.bar.com:55380</span>
<br>
</td>
      
</tr>
   
</table>
<p>
<strong> Running Hadoop jobs using the allocated cluster </strong>
</p>
<a name="Running_Hadoop_jobs_using_the_al" id="Running_Hadoop_jobs_using_the_al"></a>
<p>Now, one can run Hadoop jobs using the allocated cluster in the usual manner. This assumes variables like <em>JAVA_HOME</em> and path to the Hadoop installation are set up correctly.:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hadoop --config cluster_dir hadoop_command hadoop_command_args</span></td>
        
</tr>
      
    
</table>
<p>or</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ export HADOOP_CONF_DIR=cluster_dir</span> 
<br>
              
<span class="codefrag">$ hadoop hadoop_command hadoop_command_args</span></td>
        
</tr>
      
    
</table>
<p>Continuing our example, the following command will run a wordcount example on the allocated cluster:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">$ hadoop --config ~/hod-clusters/test jar /path/to/hadoop/hadoop-examples.jar wordcount /path/to/input /path/to/output</span></td>
</tr>
</table>
<p>or</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
    
<td colspan="1" rowspan="1"><span class="codefrag">$ export HADOOP_CONF_DIR=~/hod-clusters/test</span>
<br>
    
<span class="codefrag">$ hadoop jar /path/to/hadoop/hadoop-examples.jar wordcount /path/to/input /path/to/output</span></td>
    
</tr>
  
</table>
<p>
<strong> Operation <em>deallocate</em></strong>
</p>
<a name="Operation_deallocate" id="Operation_deallocate"></a>
<p>The <em>deallocate</em> operation is used to release an allocated cluster. When finished with a cluster, deallocate must be run so that the nodes become free for others to use. The <em>deallocate</em> operation has the following syntax. Note that it requires the cluster_dir (-d, --hod.clusterdir) argument:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod deallocate -d cluster_dir</span></td>
        
</tr>
      
    
</table>
<p>Continuing our example, the following command will deallocate the cluster:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">$ hod deallocate -d ~/hod-clusters/test</span></td>
</tr>
</table>
<p>As can be seen, HOD allows the users to allocate a cluster, and use it flexibly for running Hadoop jobs. For example, users can run multiple jobs in parallel on the same cluster, by running hadoop from multiple shells pointing to the same configuration.</p>
<a name="N1012A"></a><a name="Running+hadoop+scripts+using+HOD"></a>
<h3 class="h4">Running hadoop scripts using HOD</h3>
<a name="HOD_Script_Mode" id="HOD_Script_Mode"></a>
<p>The HOD <em>script operation</em> combines the operations of allocating, using and deallocating a cluster into a single operation. This is very useful for users who want to run a script of hadoop jobs and let HOD handle the cleanup automatically once the script completes. In order to run hadoop scripts using <span class="codefrag">hod</span>, do the following:</p>
<p>
<strong> Create a script file </strong>
</p>
<a name="Create_a_script_file" id="Create_a_script_file"></a>
<p>This will be a regular shell script that will typically contain hadoop commands, such as:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">$ hadoop jar jar_file options</span></td>
  
</tr>
</table>
<p>However, the user can add any valid commands as part of the script. HOD will execute this script setting <em>HADOOP_CONF_DIR</em> automatically to point to the allocated cluster. So users do not need to worry about this. The users however need to create a cluster directory just like when using the allocate operation.</p>
<p>
<strong> Running the script </strong>
</p>
<a name="Running_the_script" id="Running_the_script"></a>
<p>The syntax for the <em>script operation</em> as is as follows. Note that it requires a cluster directory ( -d, --hod.clusterdir), number of nodes (-n, --hod.nodecount) and a script file (-s, --hod.script):</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod script -d cluster_directory -n number_of_nodes -s script_file</span></td>
        
</tr>
      
    
</table>
<p>Note that HOD will deallocate the cluster as soon as the script completes, and this means that the script must not complete until the hadoop jobs themselves are completed. Users must take care of this while writing the script. </p>
</div>
  
<a name="N1016F"></a><a name="HOD+Features"></a>
<h2 class="h3"> HOD Features </h2>
<div class="section">
<a name="HOD_0_4_Features" id="HOD_0_4_Features"></a><a name="N10177"></a><a name="Provisioning+and+Managing+Hadoop+Clusters"></a>
<h3 class="h4"> Provisioning and Managing Hadoop Clusters </h3>
<a name="Provisioning_and_Managing_Hadoop" id="Provisioning_and_Managing_Hadoop"></a>
<p>The primary feature of HOD is to provision Hadoop Map/Reduce and HDFS clusters. This is described above in the Getting Started section. Also, as long as nodes are available, and organizational policies allow, a user can use HOD to allocate multiple Map/Reduce clusters simultaneously. The user would need to specify different paths for the <span class="codefrag">cluster_dir</span> parameter mentioned above for each cluster he/she allocates. HOD provides the <em>list</em> and the <em>info</em> operations to enable managing multiple clusters.</p>
<p>
<strong> Operation <em>list</em></strong>
</p>
<a name="Operation_list" id="Operation_list"></a>
<p>The list operation lists all the clusters allocated so far by a user. The cluster directory where the hadoop-site.xml is stored for the cluster, and it's status vis-a-vis connectivity with the JobTracker and/or HDFS is shown. The list operation has the following syntax:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod list</span></td>
        
</tr>
      
    
</table>
<p>
<strong> Operation <em>info</em></strong>
</p>
<a name="Operation_info" id="Operation_info"></a>
<p>The info operation shows information about a given cluster. The information shown includes the Torque job id, and locations of the important daemons like the HOD Ringmaster process, and the Hadoop JobTracker and NameNode daemons. The info operation has the following syntax. Note that it requires a cluster directory (-d, --hod.clusterdir):</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
      
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod info -d cluster_dir</span></td>
        
</tr>
      
    
</table>
<p>The <span class="codefrag">cluster_dir</span> should be a valid cluster directory specified in an earlier <em>allocate</em> operation.</p>
<a name="N101C2"></a><a name="Using+a+tarball+to+distribute+Hadoop"></a>
<h3 class="h4"> Using a tarball to distribute Hadoop </h3>
<a name="Using_a_tarball_to_distribute_Ha" id="Using_a_tarball_to_distribute_Ha"></a>
<p>When provisioning Hadoop, HOD can use either a pre-installed Hadoop on the cluster nodes or distribute and install a Hadoop tarball as part of the provisioning operation. If the tarball option is being used, there is no need to have a pre-installed Hadoop on the cluster nodes, nor a need to use a pre-installed one. This is especially useful in a development / QE environment where individual developers may have different versions of Hadoop to test on a shared cluster. </p>
<p>In order to use a pre-installed Hadoop, you must specify, in the hodrc, the <span class="codefrag">pkgs</span> option in the <span class="codefrag">gridservice-hdfs</span> and <span class="codefrag">gridservice-mapred</span> sections. This must point to the path where Hadoop is installed on all nodes of the cluster.</p>
<p>The syntax for specifying tarball is as follows:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -t hadoop_tarball_location</span></td>
        
</tr>
    
</table>
<p>For example, the following command allocates Hadoop provided by the tarball <span class="codefrag">~/share/hadoop.tar.gz</span>:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d ~/hadoop-cluster -n 10 -t ~/share/hadoop.tar.gz</span></td>
</tr>
</table>
<p>Similarly, when using hod script, the syntax is as follows:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod script -d cluster_directory -s script_file -n number_of_nodes -t hadoop_tarball_location</span></td>
        
</tr>
    
</table>
<p>The hadoop_tarball specified in the syntax above should point to a path on a shared file system that is accessible from all the compute nodes. Currently, HOD only supports NFS mounted file systems.</p>
<p>
<em>Note:</em>
</p>
<ul>
    
<li> For better distribution performance it is recommended that the Hadoop tarball contain only the libraries and binaries, and not the source or documentation.</li>
    
<li> When you want to run jobs against a cluster allocated using the tarball, you must use a compatible version of hadoop to submit your jobs. The best would be to untar and use the version that is present in the tarball itself.</li>
  
</ul>
<a name="N10215"></a><a name="Using+an+external+HDFS"></a>
<h3 class="h4"> Using an external HDFS </h3>
<a name="Using_an_external_HDFS" id="Using_an_external_HDFS"></a>
<p>In typical Hadoop clusters provisioned by HOD, HDFS is already set up statically (without using HOD). This allows data to persist in HDFS after the HOD provisioned clusters is deallocated. To use a statically configured HDFS, your hodrc must point to an external HDFS. Specifically, set the following options to the correct values in the section <span class="codefrag">gridservice-hdfs</span> of the hodrc:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1">external = true</td>
</tr>
<tr>
<td colspan="1" rowspan="1">host = Hostname of the HDFS NameNode</td>
</tr>
<tr>
<td colspan="1" rowspan="1">fs_port = Port number of the HDFS NameNode</td>
</tr>
<tr>
<td colspan="1" rowspan="1">info_port = Port number of the HDFS NameNode web UI</td>
</tr>
</table>
<p>
<em>Note:</em> You can also enable this option from command line. That is, to use a static HDFS, you will need to say: <br>
    
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes --gridservice-hdfs.external</span></td>
        
</tr>
    
</table>
<p>HOD can be used to provision an HDFS cluster as well as a Map/Reduce cluster, if required. To do so, set the following option in the section <span class="codefrag">gridservice-hdfs</span> of the hodrc:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1">external = false</td>
</tr>
</table>
<a name="N10259"></a><a name="Options+for+Configuring+Hadoop"></a>
<h3 class="h4"> Options for Configuring Hadoop </h3>
<a name="Options_for_Configuring_Hadoop" id="Options_for_Configuring_Hadoop"></a>
<p>HOD provides a very convenient mechanism to configure both the Hadoop daemons that it provisions and also the hadoop-site.xml that it generates on the client side. This is done by specifying Hadoop configuration parameters in either the HOD configuration file, or from the command line when allocating clusters.</p>
<p>
<strong> Configuring Hadoop Daemons </strong>
</p>
<a name="Configuring_Hadoop_Daemons" id="Configuring_Hadoop_Daemons"></a>
<p>For configuring the Hadoop daemons, you can do the following:</p>
<p>For Map/Reduce, specify the options as a comma separated list of key-value pairs to the <span class="codefrag">server-params</span> option in the <span class="codefrag">gridservice-mapred</span> section. Likewise for a dynamically provisioned HDFS cluster, specify the options in the <span class="codefrag">server-params</span> option in the <span class="codefrag">gridservice-hdfs</span> section. If these parameters should be marked as <em>final</em>, then include these in the <span class="codefrag">final-server-params</span> option of the appropriate section.</p>
<p>For example:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">server-params = mapred.reduce.parallel.copies=20,io.sort.factor=100,io.sort.mb=128,io.file.buffer.size=131072</span></td>
</tr>
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">final-server-params = mapred.child.java.opts=-Xmx512m,dfs.block.size=134217728,fs.inmemory.size.mb=128</span></td>
  
</tr>
</table>
<p>In order to provide the options from command line, you can use the following syntax:</p>
<p>For configuring the Map/Reduce daemons use:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -Mmapred.reduce.parallel.copies=20 -Mio.sort.factor=100</span></td>
        
</tr>
    
</table>
<p>In the example above, the <em>mapred.reduce.parallel.copies</em> parameter and the <em>io.sort.factor</em> parameter will be appended to the other <span class="codefrag">server-params</span> or if they already exist in <span class="codefrag">server-params</span>, will override them. In order to specify these are <em>final</em> parameters, you can use:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -Fmapred.reduce.parallel.copies=20 -Fio.sort.factor=100</span></td>
        
</tr>
    
</table>
<p>However, note that final parameters cannot be overwritten from command line. They can only be appended if not already specified.</p>
<p>Similar options exist for configuring dynamically provisioned HDFS daemons. For doing so, replace -M with -H and -F with -S.</p>
<p>
<strong> Configuring Hadoop Job Submission (Client) Programs </strong>
</p>
<a name="Configuring_Hadoop_Job_Submissio" id="Configuring_Hadoop_Job_Submissio"></a>
<p>As mentioned above, if the allocation operation completes successfully then <span class="codefrag">cluster_dir/hadoop-site.xml</span> will be generated and will contain information about the allocated cluster's JobTracker and NameNode. This configuration is used when submitting jobs to the cluster. HOD provides an option to include additional Hadoop configuration parameters into this file. The syntax for doing so is as follows:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -Cmapred.userlog.limit.kb=200 -Cmapred.child.java.opts=-Xmx512m</span></td>
        
</tr>
    
</table>
<p>In this example, the <em>mapred.userlog.limit.kb</em> and <em>mapred.child.java.opts</em> options will be included into the hadoop-site.xml that is generated by HOD.</p>
<a name="N102EB"></a><a name="Viewing+Hadoop+Web-UIs"></a>
<h3 class="h4"> Viewing Hadoop Web-UIs </h3>
<a name="Viewing_Hadoop_Web_UIs" id="Viewing_Hadoop_Web_UIs"></a>
<p>The HOD allocation operation prints the JobTracker and NameNode web UI URLs. For example:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d ~/hadoop-cluster -n 10 -c ~/hod-conf-dir/hodrc</span>
<br>
    
<span class="codefrag">INFO - HDFS UI on http://host242.foo.com:55391</span>
<br>
    
<span class="codefrag">INFO - Mapred UI on http://host521.foo.com:54874</span>
    </td>
</tr>
</table>
<p>The same information is also available via the <em>info</em> operation described above.</p>
<a name="N1030D"></a><a name="Collecting+and+Viewing+Hadoop+Logs"></a>
<h3 class="h4"> Collecting and Viewing Hadoop Logs </h3>
<a name="Collecting_and_Viewing_Hadoop_Lo" id="Collecting_and_Viewing_Hadoop_Lo"></a>
<p>To get the Hadoop logs of the daemons running on one of the allocated nodes: </p>
<ul>
    
<li> Log into the node of interest. If you want to look at the logs of the JobTracker or NameNode, then you can find the node running these by using the <em>list</em> and <em>info</em> operations mentioned above.</li>
    
<li> Get the process information of the daemon of interest (for example, <span class="codefrag">ps ux | grep TaskTracker</span>)</li>
    
<li> In the process information, search for the value of the variable <span class="codefrag">-Dhadoop.log.dir</span>. Typically this will be a decendent directory of the <span class="codefrag">hodring.temp-dir</span> value from the hod configuration file.</li>
    
<li> Change to the <span class="codefrag">hadoop.log.dir</span> directory to view daemon and user logs.</li>
  
</ul>
<p>HOD also provides a mechanism to collect logs when a cluster is being deallocated and persist them into a file system, or an externally configured HDFS. By doing so, these logs can be viewed after the jobs are completed and the nodes are released. In order to do so, configure the log-destination-uri to a URI as follows:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">log-destination-uri = hdfs://host123:45678/user/hod/logs</span> or</td>
</tr>
    
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">log-destination-uri = file://path/to/store/log/files</span></td>
</tr>
    
</table>
<p>Under the root directory specified above in the path, HOD will create a create a path user_name/torque_jobid and store gzipped log files for each node that was part of the job.</p>
<p>Note that to store the files to HDFS, you may need to configure the <span class="codefrag">hodring.pkgs</span> option with the Hadoop version that matches the HDFS mentioned. If not, HOD will try to use the Hadoop version that it is using to provision the Hadoop cluster itself.</p>
<a name="N10356"></a><a name="Auto-deallocation+of+Idle+Clusters"></a>
<h3 class="h4"> Auto-deallocation of Idle Clusters </h3>
<a name="Auto_deallocation_of_Idle_Cluste" id="Auto_deallocation_of_Idle_Cluste"></a>
<p>HOD automatically deallocates clusters that are not running Hadoop jobs for a given period of time. Each HOD allocation includes a monitoring facility that constantly checks for running Hadoop jobs. If it detects no running Hadoop jobs for a given period, it will automatically deallocate its own cluster and thus free up nodes which are not being used effectively.</p>
<p>
<em>Note:</em> While the cluster is deallocated, the <em>cluster directory</em> is not cleaned up automatically. The user must deallocate this cluster through the regular <em>deallocate</em> operation to clean this up.</p>
<a name="N1036C"></a><a name="Specifying+Additional+Job+Attributes"></a>
<h3 class="h4"> Specifying Additional Job Attributes </h3>
<a name="Specifying_Additional_Job_Attrib" id="Specifying_Additional_Job_Attrib"></a>
<p>HOD allows the user to specify a wallclock time and a name (or title) for a Torque job. </p>
<p>The wallclock time is the estimated amount of time for which the Torque job will be valid. After this time has expired, Torque will automatically delete the job and free up the nodes. Specifying the wallclock time can also help the job scheduler to better schedule jobs, and help improve utilization of cluster resources.</p>
<p>To specify the wallclock time, use the following syntax:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -l time_in_seconds</span></td>
        
</tr>
    
</table>
<p>The name or title of a Torque job helps in user friendly identification of the job. The string specified here will show up in all information where Torque job attributes are displayed, including the <span class="codefrag">qstat</span> command.</p>
<p>To specify the name or title, use the following syntax:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
        
<tr>
          
<td colspan="1" rowspan="1"><span class="codefrag">$ hod allocate -d cluster_dir -n number_of_nodes -N name_of_job</span></td>
        
</tr>
    
</table>
<p>
<em>Note:</em> Due to restriction in the underlying Torque resource manager, names which do not start with a alphabet or contain a 'space' will cause the job to fail. The failure message points to the problem being in the specified job name.</p>
<a name="N103A3"></a><a name="Capturing+HOD+exit+codes+in+Torque"></a>
<h3 class="h4"> Capturing HOD exit codes in Torque </h3>
<a name="Capturing_HOD_exit_codes_in_Torq" id="Capturing_HOD_exit_codes_in_Torq"></a>
<p>HOD exit codes are captured in the Torque exit_status field. This will help users and system administrators to distinguish successful runs from unsuccessful runs of HOD. The exit codes are 0 if allocation succeeded and all hadoop jobs ran on the allocated cluster correctly. They are non-zero if allocation failed or some of the hadoop jobs failed on the allocated cluster. The exit codes that are possible are mentioned in the table below. <em>Note: Hadoop job status is captured only if the version of Hadoop used is 16 or above.</em>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
    
      
<tr>
        
<td colspan="1" rowspan="1"> Exit Code </td>
        <td colspan="1" rowspan="1"> Meaning </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 6 </td>
        <td colspan="1" rowspan="1"> Ringmaster failure </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 7 </td>
        <td colspan="1" rowspan="1"> DFS failure </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 8 </td>
        <td colspan="1" rowspan="1"> Job tracker failure </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 10 </td>
        <td colspan="1" rowspan="1"> Cluster dead </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 12 </td>
        <td colspan="1" rowspan="1"> Cluster already allocated </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 13 </td>
        <td colspan="1" rowspan="1"> HDFS dead </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 14 </td>
        <td colspan="1" rowspan="1"> Mapred dead </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 16 </td>
        <td colspan="1" rowspan="1"> All Map/Reduce jobs that ran on the cluster failed. Refer to hadoop logs for more details. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 17 </td>
        <td colspan="1" rowspan="1"> Some of the Map/Reduce jobs that ran on the cluster failed. Refer to hadoop logs for more details. </td>
      
</tr>
    
  
</table>
<a name="N10435"></a><a name="Command+Line"></a>
<h3 class="h4"> Command Line</h3>
<a name="Command_Line" id="Command_Line"></a>
<p>HOD command line has the following general syntax:<br>
      
<em>hod &lt;operation&gt; [ARGS] [OPTIONS]<br>
</em>
      Allowed operations are 'allocate', 'deallocate', 'info', 'list', 'script' and 'help'. For help on a particular operation one can do : <span class="codefrag">hod help &lt;operation&gt;</span>. To have a look at possible options one can do a <span class="codefrag">hod help options.</span>
</p>
<p>
<em>allocate</em>
<br>
      
<em>Usage : hod allocate -d cluster_dir -n number_of_nodes [OPTIONS]</em>
<br>
        Allocates a cluster on the given number of cluster nodes, and store the allocation information in cluster_dir for use with subsequent <span class="codefrag">hadoop</span> commands. Note that the <span class="codefrag">cluster_dir</span> must exist before running the command.</p>
<p>
<em>list</em>
<br>
      
<em>Usage : hod list [OPTIONS]</em>
<br>
       Lists the clusters allocated by this user. Information provided includes the Torque job id corresponding to the cluster, the cluster directory where the allocation information is stored, and whether the Map/Reduce daemon is still active or not.</p>
<p>
<em>info</em>
<br>
      
<em>Usage : hod info -d cluster_dir [OPTIONS]</em>
<br>
        Lists information about the cluster whose allocation information is stored in the specified cluster directory.</p>
<p>
<em>deallocate</em>
<br>
      
<em>Usage : hod deallocate -d cluster_dir [OPTIONS]</em>
<br>
        Deallocates the cluster whose allocation information is stored in the specified cluster directory.</p>
<p>
<em>script</em>
<br>
      
<em>Usage : hod script -s script_file -d cluster_directory -n number_of_nodes [OPTIONS]</em>
<br>
        Runs a hadoop script using HOD<em>script</em> operation. Provisions Hadoop on a given number of nodes, executes the given script from the submitting node, and deallocates the cluster when the script completes.</p>
<p>
<em>help</em>
<br>
      
<em>Usage : hod help [operation | 'options']</em>
<br>
       When no argument is specified, <span class="codefrag">hod help</span> gives the usage and basic options, and is equivalent to <span class="codefrag">hod --help</span> (See below). When 'options' is given as argument, hod displays only the basic options that hod takes. When an operation is specified, it displays the usage and description corresponding to that particular operation. For e.g, to know about allocate operation, one can do a <span class="codefrag">hod help allocate</span>
</p>
<p>Besides the operations, HOD can take the following command line options.</p>
<p>
<em>--help</em>
<br>
        Prints out the help message to see the usage and basic options.</p>
<p>
<em>--verbose-help</em>
<br>
        All configuration options provided in the hodrc file can be passed on the command line, using the syntax <span class="codefrag">--section_name.option_name[=value]</span>. When provided this way, the value provided on command line overrides the option provided in hodrc. The verbose-help command lists all the available options in the hodrc file. This is also a nice way to see the meaning of the configuration options.</p>
<p>See the <a href="#Options_Configuring_HOD">next section</a> for a description of most important hod configuration options. For basic options, one can do a <span class="codefrag">hod help options</span> and for all options possible in hod configuration, one can see <span class="codefrag">hod --verbose-help</span>. See <a href="hod_config_guide.html">config guide</a> for a description of all options.</p>
<a name="N104BC"></a><a name="Options+Configuring+HOD"></a>
<h3 class="h4"> Options Configuring HOD </h3>
<a name="Options_Configuring_HOD" id="Options_Configuring_HOD"></a>
<p>As described above, HOD is configured using a configuration file that is usually set up by system administrators. This is a INI style configuration file that is divided into sections, and options inside each section. Each section relates to one of the HOD processes: client, ringmaster, hodring, mapreduce or hdfs. The options inside a section comprise of an option name and value. </p>
<p>Users can override the configuration defined in the default configuration in two ways: </p>
<ul>
    
<li> Users can supply their own configuration file to HOD in each of the commands, using the <span class="codefrag">-c</span> option</li>
    
<li> Users can supply specific configuration options to HOD/ Options provided on command line <em>override</em> the values provided in the configuration file being used.</li>
  
</ul>
<p>This section describes some of the most commonly used configuration options. These commonly used options are provided with a <em>short</em> option for convenience of specification. All other options can be specified using a <em>long</em> option that is also described below.</p>
<p>
<em>-c config_file</em>
<br>
    Provides the configuration file to use. Can be used with all other options of HOD. Alternatively, the <span class="codefrag">HOD_CONF_DIR</span> environment variable can be defined to specify a directory that contains a file named <span class="codefrag">hodrc</span>, alleviating the need to specify the configuration file in each HOD command.</p>
<p>
<em>-d cluster_dir</em>
<br>
        This is required for most of the hod operations. As described <a href="#Create_a_Cluster_Directory">here</a>, the <em>cluster directory</em> is a directory on the local file system where <span class="codefrag">hod</span> will generate the Hadoop configuration, <em>hadoop-site.xml</em>, corresponding to the cluster it allocates. Create this directory and pass it to the <span class="codefrag">hod</span> operations as an argument to -d or --hod.clusterdir. Once a cluster is allocated, a user can utilize it to run Hadoop jobs by specifying the clusterdirectory as the Hadoop --config option.</p>
<p>
<em>-n number_of_nodes</em>
<br>
  This is required for the hod 'allocation' operation and for script operation. This denotes the number of nodes to be allocated.</p>
<p>
<em>-s script-file</em>
<br>
   Required when using script operation, specifies the script file to execute.</p>
<p>
<em>-b 1|2|3|4</em>
<br>
    Enables the given debug level. Can be used with all other options of HOD. 4 is most verbose.</p>
<p>
<em>-t hadoop_tarball</em>
<br>
    Provisions Hadoop from the given tar.gz file. This option is only applicable to the <em>allocate</em> operation. For better distribution performance it is strongly recommended that the Hadoop tarball is created <em>after</em> removing the source or documentation.</p>
<p>
<em>-N job-name</em>
<br>
    The Name to give to the resource manager job that HOD uses underneath. For e.g. in the case of Torque, this translates to the <span class="codefrag">qsub -N</span> option, and can be seen as the job name using the <span class="codefrag">qstat</span> command.</p>
<p>
<em>-l wall-clock-time</em>
<br>
    The amount of time for which the user expects to have work on the allocated cluster. This is passed to the resource manager underneath HOD, and can be used in more efficient scheduling and utilization of the cluster. Note that in the case of Torque, the cluster is automatically deallocated after this time expires.</p>
<p>
<em>-j java-home</em>
<br>
    Path to be set to the JAVA_HOME environment variable. This is used in the <em>script</em> operation. HOD sets the JAVA_HOME environment variable tot his value and launches the user script in that.</p>
<p>
<em>-A account-string</em>
<br>
    Accounting information to pass to underlying resource manager.</p>
<p>
<em>-Q queue-name</em>
<br>
    Name of the queue in the underlying resource manager to which the job must be submitted.</p>
<p>
<em>-Mkey1=value1 -Mkey2=value2</em>
<br>
    Provides configuration parameters for the provisioned Map/Reduce daemons (JobTracker and TaskTrackers). A hadoop-site.xml is generated with these values on the cluster nodes. <br>
    
<em>Note:</em> Values which have the following characters: space, comma, equal-to, semi-colon need to be escaped with a '\' character, and need to be enclosed within quotes. You can escape a '\' with a '\' too. </p>
<p>
<em>-Hkey1=value1 -Hkey2=value2</em>
<br>
    Provides configuration parameters for the provisioned HDFS daemons (NameNode and DataNodes). A hadoop-site.xml is generated with these values on the cluster nodes <br>
    
<em>Note:</em> Values which have the following characters: space, comma, equal-to, semi-colon need to be escaped with a '\' character, and need to be enclosed within quotes. You can escape a '\' with a '\' too. </p>
<p>
<em>-Ckey1=value1 -Ckey2=value2</em>
<br>
    Provides configuration parameters for the client from where jobs can be submitted. A hadoop-site.xml is generated with these values on the submit node. <br>
    
<em>Note:</em> Values which have the following characters: space, comma, equal-to, semi-colon need to be escaped with a '\' character, and need to be enclosed within quotes. You can escape a '\' with a '\' too. </p>
<p>
<em>--section-name.option-name=value</em>
<br>
    This is the method to provide options using the <em>long</em> format. For e.g. you could say <em>--hod.script-wait-time=20</em>
</p>
</div>
	
<a name="N10576"></a><a name="Troubleshooting-N10576"></a>
<h2 class="h3"> Troubleshooting </h2>
<div class="section">
<a name="Troubleshooting" id="Troubleshooting"></a>
<p>The following section identifies some of the most likely error conditions users can run into when using HOD and ways to trouble-shoot them</p>
<a name="N10581"></a><a name="Hangs+During+Allocation"></a>
<h3 class="h4">hod Hangs During Allocation </h3>
<a name="_hod_Hangs_During_Allocation" id="_hod_Hangs_During_Allocation"></a><a name="hod_Hangs_During_Allocation" id="hod_Hangs_During_Allocation"></a>
<p>
<em>Possible Cause:</em> One of the HOD or Hadoop components have failed to come up. In such a case, the <span class="codefrag">hod</span> command will return after a few minutes (typically 2-3 minutes) with an error code of either 7 or 8 as defined in the Error Codes section. Refer to that section for further details. </p>
<p>
<em>Possible Cause:</em> A large allocation is fired with a tarball. Sometimes due to load in the network, or on the allocated nodes, the tarball distribution might be significantly slow and take a couple of minutes to come back. Wait for completion. Also check that the tarball does not have the Hadoop sources or documentation.</p>
<p>
<em>Possible Cause:</em> A Torque related problem. If the cause is Torque related, the <span class="codefrag">hod</span> command will not return for more than 5 minutes. Running <span class="codefrag">hod</span> in debug mode may show the <span class="codefrag">qstat</span> command being executed repeatedly. Executing the <span class="codefrag">qstat</span> command from a separate shell may show that the job is in the <span class="codefrag">Q</span> (Queued) state. This usually indicates a problem with Torque. Possible causes could include some nodes being down, or new nodes added that Torque is not aware of. Generally, system administator help is needed to resolve this problem.</p>
<a name="N105AE"></a><a name="Hangs+During+Deallocation"></a>
<h3 class="h4">hod Hangs During Deallocation </h3>
<a name="_hod_Hangs_During_Deallocation" id="_hod_Hangs_During_Deallocation"></a><a name="hod_Hangs_During_Deallocation" id="hod_Hangs_During_Deallocation"></a>
<p>
<em>Possible Cause:</em> A Torque related problem, usually load on the Torque server, or the allocation is very large. Generally, waiting for the command to complete is the only option.</p>
<a name="N105BF"></a><a name="Fails+With+an+error+code+and+error+message"></a>
<h3 class="h4">hod Fails With an error code and error message </h3>
<a name="hod_Fails_With_an_error_code_and" id="hod_Fails_With_an_error_code_and"></a><a name="_hod_Fails_With_an_error_code_an" id="_hod_Fails_With_an_error_code_an"></a>
<p>If the exit code of the <span class="codefrag">hod</span> command is not <span class="codefrag">0</span>, then refer to the following table of error exit codes to determine why the code may have occurred and how to debug the situation.</p>
<p>
<strong> Error Codes </strong>
</p>
<a name="Error_Codes" id="Error_Codes"></a>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
    
      
<tr>
        
<th colspan="1" rowspan="1">Error Code</th>
        <th colspan="1" rowspan="1">Meaning</th>
        <th colspan="1" rowspan="1">Possible Causes and Remedial Actions</th>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 1 </td>
        <td colspan="1" rowspan="1"> Configuration error </td>
        <td colspan="1" rowspan="1"> Incorrect configuration values specified in hodrc, or other errors related to HOD configuration. The error messages in this case must be sufficient to debug and fix the problem. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 2 </td>
        <td colspan="1" rowspan="1"> Invalid operation </td>
        <td colspan="1" rowspan="1"> Do <span class="codefrag">hod help</span> for the list of valid operations. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 3 </td>
        <td colspan="1" rowspan="1"> Invalid operation arguments </td>
        <td colspan="1" rowspan="1"> Do <span class="codefrag">hod help operation</span> for listing the usage of a particular operation.</td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 4 </td>
        <td colspan="1" rowspan="1"> Scheduler failure </td>
        <td colspan="1" rowspan="1"> 1. Requested more resources than available. Run <span class="codefrag">checknodes cluster_name</span> to see if enough nodes are available. <br>
          2. Torque is misconfigured, the path to Torque binaries is misconfigured, or other Torque problems. Contact system administrator. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 5 </td>
        <td colspan="1" rowspan="1"> Job execution failure </td>
        <td colspan="1" rowspan="1"> 1. Torque Job was deleted from outside. Execute the Torque <span class="codefrag">qstat</span> command to see if you have any jobs in the <span class="codefrag">R</span> (Running) state. If none exist, try re-executing HOD. <br>
          2. Torque problems such as the server momentarily going down, or becoming unresponsive. Contact system administrator. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 6 </td>
        <td colspan="1" rowspan="1"> Ringmaster failure </td>
        <td colspan="1" rowspan="1"> 1. Invalid configuration in the <span class="codefrag">ringmaster</span> section,<br>
          2. invalid <span class="codefrag">pkgs</span> option in <span class="codefrag">gridservice-mapred or gridservice-hdfs</span> section,<br>
          3. an invalid hadoop tarball,<br>
          4. mismatched version in Hadoop between the MapReduce and an external HDFS.<br>
          The Torque <span class="codefrag">qstat</span> command will most likely show a job in the <span class="codefrag">C</span> (Completed) state. Refer to the section <em>Locating Ringmaster Logs</em> below for more information. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 7 </td>
        <td colspan="1" rowspan="1"> DFS failure </td>
        <td colspan="1" rowspan="1"> 1. Problem in starting Hadoop clusters. Review the Hadoop related configuration. Look at the Hadoop logs using information specified in <em>Getting Hadoop Logs</em> section above. <br>
          2. Invalid configuration in the <span class="codefrag">hodring</span> section of hodrc. <span class="codefrag">ssh</span> to all allocated nodes (determined by <span class="codefrag">qstat -f torque_job_id</span>) and grep for <span class="codefrag">ERROR</span> or <span class="codefrag">CRITICAL</span> in hodring logs. Refer to the section <em>Locating Hodring Logs</em> below for more information. <br>
          3. Invalid tarball specified which is not packaged correctly. <br>
          4. Cannot communicate with an externally configured HDFS. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 8 </td>
        <td colspan="1" rowspan="1"> Job tracker failure </td>
        <td colspan="1" rowspan="1"> Similar to the causes in <em>DFS failure</em> case. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 10 </td>
        <td colspan="1" rowspan="1"> Cluster dead </td>
        <td colspan="1" rowspan="1"> 1. Cluster was auto-deallocated because it was idle for a long time. <br>
          2. Cluster was auto-deallocated because the wallclock time specified by the system administrator or user was exceeded. <br>
          3. Cannot communicate with the JobTracker and HDFS NameNode which were successfully allocated. Deallocate the cluster, and allocate again. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 12 </td>
        <td colspan="1" rowspan="1"> Cluster already allocated </td>
        <td colspan="1" rowspan="1"> The cluster directory specified has been used in a previous allocate operation and is not yet deallocated. Specify a different directory, or deallocate the previous allocation first. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 13 </td>
        <td colspan="1" rowspan="1"> HDFS dead </td>
        <td colspan="1" rowspan="1"> Cannot communicate with the HDFS NameNode. HDFS NameNode went down. </td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 14 </td>
        <td colspan="1" rowspan="1"> Mapred dead </td>
        <td colspan="1" rowspan="1"> 1. Cluster was auto-deallocated because it was idle for a long time. <br>
          2. Cluster was auto-deallocated because the wallclock time specified by the system administrator or user was exceeded. <br>
          3. Cannot communicate with the Map/Reduce JobTracker. JobTracker node went down. <br>
          
</td>
      
</tr>
      
<tr>
        
<td colspan="1" rowspan="1"> 15 </td>
        <td colspan="1" rowspan="1"> Cluster not allocated </td>
        <td colspan="1" rowspan="1"> An operation which requires an allocated cluster is given a cluster directory with no state information. </td>
      
</tr>
   
      
<tr>
        
<td colspan="1" rowspan="1"> Any non-zero exit code </td>
        <td colspan="1" rowspan="1"> HOD script error </td>
        <td colspan="1" rowspan="1"> If the hod script option was used, it is likely that the exit code is from the script. Unfortunately, this could clash with the exit codes of the hod command itself. In order to help users differentiate these two, hod writes the script's exit code to a file called script.exitcode in the cluster directory, if the script returned an exit code. You can cat this file to determine the script's exit code. If it does not exist, then it is a hod command exit code.</td> 
      
</tr>
  
</table>
<a name="N10740"></a><a name="Hadoop+Jobs+Not+Running+on+a+Successfully+Allocated+Cluster"></a>
<h3 class="h4"> Hadoop Jobs Not Running on a Successfully Allocated Cluster </h3>
<a name="Hadoop_Jobs_Not_Running_on_a_Suc" id="Hadoop_Jobs_Not_Running_on_a_Suc"></a>
<p>This scenario generally occurs when a cluster is allocated, and is left inactive for sometime, and then hadoop jobs are attempted to be run on them. Then Hadoop jobs fail with the following exception:</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">08/01/25 16:31:40 INFO ipc.Client: Retrying connect to server: foo.bar.com/1.1.1.1:53567. Already tried 1 time(s).</span></td>
</tr>
</table>
<p>
<em>Possible Cause:</em> No Hadoop jobs were run for a significant portion of time. Thus the cluster would have got deallocated as described in the section <em>Auto-deallocation of Idle Clusters</em>. Deallocate the cluster and allocate it again.</p>
<p>
<em>Possible Cause:</em> The wallclock limit specified by the Torque administrator or the <span class="codefrag">-l</span> option defined in the section <em>Specifying Additional Job Attributes</em> was exceeded since allocation time. Thus the cluster would have got released. Deallocate the cluster and allocate it again.</p>
<p>
<em>Possible Cause:</em> There is a version mismatch between the version of the hadoop being used in provisioning (typically via the tarball option) and the external HDFS. Ensure compatible versions are being used.</p>
<p>
<em>Possible Cause:</em> There is a version mismatch between the version of the hadoop client being used to submit jobs and the hadoop used in provisioning (typically via the tarball option). Ensure compatible versions are being used.</p>
<p>
<em>Possible Cause:</em> You used one of the options for specifying Hadoop configuration <span class="codefrag">-M or -H</span>, which had special characters like space or comma that were not escaped correctly. Refer to the section <em>Options Configuring HOD</em> for checking how to specify such options correctly.</p>
<a name="N1077B"></a><a name="My+Hadoop+Job+Got+Killed"></a>
<h3 class="h4"> My Hadoop Job Got Killed </h3>
<a name="My_Hadoop_Job_Got_Killed" id="My_Hadoop_Job_Got_Killed"></a>
<p>
<em>Possible Cause:</em> The wallclock limit specified by the Torque administrator or the <span class="codefrag">-l</span> option defined in the section <em>Specifying Additional Job Attributes</em> was exceeded since allocation time. Thus the cluster would have got released. Deallocate the cluster and allocate it again, this time with a larger wallclock time.</p>
<p>
<em>Possible Cause:</em> Problems with the JobTracker node. Refer to the section in <em>Collecting and Viewing Hadoop Logs</em> to get more information.</p>
<a name="N10796"></a><a name="Hadoop+Job+Fails+with+Message%3A+%27Job+tracker+still+initializing%27"></a>
<h3 class="h4"> Hadoop Job Fails with Message: 'Job tracker still initializing' </h3>
<a name="Hadoop_Job_Fails_with_Message_Jo" id="Hadoop_Job_Fails_with_Message_Jo"></a>
<p>
<em>Possible Cause:</em> The hadoop job was being run as part of the HOD script command, and it started before the JobTracker could come up fully. Allocate the cluster using a large value for the configuration option <span class="codefrag">--hod.script-wait-time</span>. Typically a value of 120 should work, though it is typically unnecessary to be that large.</p>
<a name="N107A6"></a><a name="The+Exit+Codes+For+HOD+Are+Not+Getting+Into+Torque"></a>
<h3 class="h4"> The Exit Codes For HOD Are Not Getting Into Torque </h3>
<a name="The_Exit_Codes_For_HOD_Are_Not_G" id="The_Exit_Codes_For_HOD_Are_Not_G"></a>
<p>
<em>Possible Cause:</em> Version 0.16 of hadoop is required for this functionality to work. The version of Hadoop used does not match. Use the required version of Hadoop.</p>
<p>
<em>Possible Cause:</em> The deallocation was done without using the <span class="codefrag">hod</span> command; for e.g. directly using <span class="codefrag">qdel</span>. When the cluster is deallocated in this manner, the HOD processes are terminated using signals. This results in the exit code to be based on the signal number, rather than the exit code of the program.</p>
<a name="N107BE"></a><a name="The+Hadoop+Logs+are+Not+Uploaded+to+DFS"></a>
<h3 class="h4"> The Hadoop Logs are Not Uploaded to DFS </h3>
<a name="The_Hadoop_Logs_are_Not_Uploaded" id="The_Hadoop_Logs_are_Not_Uploaded"></a>
<p>
<em>Possible Cause:</em> There is a version mismatch between the version of the hadoop being used for uploading the logs and the external HDFS. Ensure that the correct version is specified in the <span class="codefrag">hodring.pkgs</span> option.</p>
<a name="N107CE"></a><a name="Locating+Ringmaster+Logs"></a>
<h3 class="h4"> Locating Ringmaster Logs </h3>
<a name="Locating_Ringmaster_Logs" id="Locating_Ringmaster_Logs"></a>
<p>To locate the ringmaster logs, follow these steps: </p>
<ul>
    
<li> Execute hod in the debug mode using the -b option. This will print the Torque job id for the current run.</li>
    
<li> Execute <span class="codefrag">qstat -f torque_job_id</span> and look up the value of the <span class="codefrag">exec_host</span> parameter in the output. The first host in this list is the ringmaster node.</li>
    
<li> Login to this node.</li>
    
<li> The ringmaster log location is specified by the <span class="codefrag">ringmaster.log-dir</span> option in the hodrc. The name of the log file will be <span class="codefrag">username.torque_job_id/ringmaster-main.log</span>.</li>
    
<li> If you don't get enough information, you may want to set the ringmaster debug level to 4. This can be done by passing <span class="codefrag">--ringmaster.debug 4</span> to the hod command line.</li>
  
</ul>
<a name="N107FA"></a><a name="Locating+Hodring+Logs"></a>
<h3 class="h4"> Locating Hodring Logs </h3>
<a name="Locating_Hodring_Logs" id="Locating_Hodring_Logs"></a>
<p>To locate hodring logs, follow the steps below: </p>
<ul>
    
<li> Execute hod in the debug mode using the -b option. This will print the Torque job id for the current run.</li>
    
<li> Execute <span class="codefrag">qstat -f torque_job_id</span> and look up the value of the <span class="codefrag">exec_host</span> parameter in the output. All nodes in this list should have a hodring on them.</li>
    
<li> Login to any of these nodes.</li>
    
<li> The hodring log location is specified by the <span class="codefrag">hodring.log-dir</span> option in the hodrc. The name of the log file will be <span class="codefrag">username.torque_job_id/hodring-main.log</span>.</li>
    
<li> If you don't get enough information, you may want to set the hodring debug level to 4. This can be done by passing <span class="codefrag">--hodring.debug 4</span> to the hod command line.</li>
  
</ul>
</div>

</div>
<!--+
    |end content
    +-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
    |start bottomstrip
    +-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
//  --></script>
</div>
<div class="copyright">
        Copyright &copy;
         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
