<!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>
      HOD 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.19 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_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="quickstart.html">Hadoop Quick Start</a>
</div>
<div class="menuitem">
<a href="cluster_setup.html">Hadoop Cluster Setup</a>
</div>
<div class="menuitem">
<a href="mapred_tutorial.html">Hadoop Map/Reduce Tutorial</a>
</div>
<div class="menuitem">
<a href="commands_manual.html">Hadoop Command Guide</a>
</div>
<div class="menuitem">
<a href="hdfs_shell.html">Hadoop FS Shell Guide</a>
</div>
<div class="menuitem">
<a href="distcp.html">Hadoop DistCp Guide</a>
</div>
<div class="menuitem">
<a href="native_libraries.html">Hadoop Native Libraries</a>
</div>
<div class="menuitem">
<a href="streaming.html">Hadoop Streaming</a>
</div>
<div class="menuitem">
<a href="hadoop_archives.html">Hadoop Archives</a>
</div>
<div class="menuitem">
<a href="hdfs_user_guide.html">HDFS User Guide</a>
</div>
<div class="menuitem">
<a href="hdfs_design.html">HDFS Architecture</a>
</div>
<div class="menuitem">
<a href="hdfs_permissions_guide.html">HDFS Admin Guide: Permissions</a>
</div>
<div class="menuitem">
<a href="hdfs_quota_admin_guide.html">HDFS Admin Guide: Quotas</a>
</div>
<div class="menuitem">
<a href="SLG_user_guide.html">HDFS Utilities</a>
</div>
<div class="menuitem">
<a href="libhdfs.html">HDFS C API</a>
</div>
<div class="menupage">
<div class="menupagetitle">HOD User Guide</div>
</div>
<div class="menuitem">
<a href="hod_admin_guide.html">HOD Admin Guide</a>
</div>
<div class="menuitem">
<a href="hod_config_guide.html">HOD Config Guide</a>
</div>
<div class="menuitem">
<a href="capacity_scheduler.html">Capacity Scheduler</a>
</div>
<div class="menuitem">
<a href="api/index.html">API Docs</a>
</div>
<div class="menuitem">
<a href="jdiff/changes.html">API Changes</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="releasenotes.html">Release Notes</a>
</div>
<div class="menuitem">
<a href="changes.html">Change Log</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>
      HOD 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-N10579"> 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+DFSClient+Warns+with+a%0A++NotReplicatedYetException">Hadoop DFSClient Warns with a
  NotReplicatedYetException</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+HDFS"> The Hadoop Logs are Not Uploaded to HDFS </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>This guide shows you how to get started using HOD, reviews various HOD features and command line options, and provides detailed troubleshooting help.</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. Pass this directory to the <span class="codefrag">hod</span> operations as stated below. If the cluster directory passed doesn't already exist, HOD will automatically try to create it and use it. 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 specify 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 its 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>
    
<li> You need to make sure that there are no Hadoop configuration files, hadoop-env.sh and hadoop-site.xml, present in the conf directory of the tarred distribution. The presence of these files with incorrect values could make the cluster allocation to fail.</li>
  
</ul>
<a name="N10218"></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="N1025C"></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="N102EE"></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="N10310"></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 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="N10359"></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="N1036F"></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 an alphabet character 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="N103A6"></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"> HDFS 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="N10438"></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="N104BF"></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. Pass it to the <span class="codefrag">hod</span> operations as an argument to -d or --hod.clusterdir. If it doesn't already exist, HOD will automatically try to create it and use it. 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="N10579"></a><a name="Troubleshooting-N10579"></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="N10584"></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="N105B1"></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="N105C2"></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. Requested resources exceed resource manager limits. <br>
          3. 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. <br>
          3. The system administrator might have configured account verification, and an invalid account is specified. 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"> HOD prints the message "Cluster could not be allocated because of the following errors on the ringmaster host &lt;hostname&gt;". The actual error message may indicate one of the following:<br>
          1. Invalid configuration on the node running the ringmaster, specified by the hostname in the error message.<br>
          2. Invalid configuration in the <span class="codefrag">ringmaster</span> section,<br>
          3. Invalid <span class="codefrag">pkgs</span> option in <span class="codefrag">gridservice-mapred or gridservice-hdfs</span> section,<br>
          4. An invalid hadoop tarball, or a tarball which has bundled an invalid configuration file in the conf directory,<br>
          5. 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. <br>
          One can login to the ringmaster host as given by HOD failure message and debug the problem with the help of the error message. If the error message doesn't give complete information, ringmaster logs should help finding out the root cause of the problem. 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"> HDFS failure </td>
        <td colspan="1" rowspan="1"> When HOD fails to allocate due to HDFS failures (or Job tracker failures, error code 8, see below), it prints a failure message "Hodring at &lt;hostname&gt; failed with following errors:" and then gives the actual error message, which may indicate one of the following:<br>
          1. Problem in starting Hadoop clusters. Usually the actual cause in the error message will indicate the problem on the hostname mentioned. Also, review the Hadoop related configuration in the HOD configuration files. Look at the Hadoop logs using information specified in <em>Collecting and Viewing Hadoop Logs</em> section above. <br>
          2. Invalid configuration on the node running the hodring, specified by the hostname in the error message <br>
          3. Invalid configuration in the <span class="codefrag">hodring</span> section of hodrc. <span class="codefrag">ssh</span> to the hostname specified in the error message 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>
          4. Invalid tarball specified which is not packaged correctly. <br>
          5. Cannot communicate with an externally configured HDFS.<br>
          When such HDFS or Job tracker failure occurs, one can login into the host with hostname mentioned in HOD failure message and debug the problem. While fixing the problem, one should also review other log messages in the ringmaster log to see which other machines also might have had problems bringing up the jobtracker/namenode, apart from the hostname that is reported in the failure message. This possibility of other machines also having problems occurs because HOD continues to try and launch hadoop daemons on multiple machines one after another depending upon the value of the configuration variable <a href="hod_config_guide.html#3.4+ringmaster+options">ringmaster.max-master-failures</a>. Refer to the section <em>Locating Ringmaster Logs</em> below to find more about ringmaster logs.
          </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="N10757"></a><a name="Hadoop+DFSClient+Warns+with+a%0A++NotReplicatedYetException"></a>
<h3 class="h4">Hadoop DFSClient Warns with a
  NotReplicatedYetException</h3>
<p>Sometimes, when you try to upload a file to the HDFS immediately after
  allocating a HOD cluster, DFSClient warns with a NotReplicatedYetException. It
  usually shows a message something like - </p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">WARN
  hdfs.DFSClient: NotReplicatedYetException sleeping &lt;filename&gt; retries
  left 3</span></td>
</tr>
<tr>
<td colspan="1" rowspan="1"><span class="codefrag">08/01/25 16:31:40 INFO hdfs.DFSClient:
  org.apache.hadoop.ipc.RemoteException: java.io.IOException: File
  &lt;filename&gt; could only be replicated to 0 nodes, instead of
  1</span></td>
</tr>
</table>
<p> This scenario arises when you try to upload a file
  to the HDFS while the DataNodes are still in the process of contacting the
  NameNode. This can be resolved by waiting for some time before uploading a new
  file to the HDFS, so that enough DataNodes start and contact the
  NameNode.</p>
<a name="N1076F"></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="N107AA"></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="N107C5"></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="N107D5"></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="N107ED"></a><a name="The+Hadoop+Logs+are+Not+Uploaded+to+HDFS"></a>
<h3 class="h4"> The Hadoop Logs are Not Uploaded to HDFS </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="N107FD"></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="N10829"></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;
         2008 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
    |end bottomstrip
    +-->
</div>
</body>
</html>
