You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by dd...@apache.org on 2008/05/22 06:16:17 UTC

svn commit: r658998 - in /hadoop/core/trunk: ./ docs/ src/docs/src/documentation/content/xdocs/ src/java/org/apache/hadoop/mapred/

Author: ddas
Date: Wed May 21 21:16:11 2008
New Revision: 658998

URL: http://svn.apache.org/viewvc?rev=658998&view=rev
Log:
HADOOP-2867. Adds the task's CWD to its LD_LIBRARY_PATH. Contributed by Amreshwari Sriramadasu.

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/docs/changes.html
    hadoop/core/trunk/docs/hadoop-default.html
    hadoop/core/trunk/docs/mapred_tutorial.html
    hadoop/core/trunk/docs/mapred_tutorial.pdf
    hadoop/core/trunk/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml
    hadoop/core/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Wed May 21 21:16:11 2008
@@ -152,6 +152,9 @@
     HADOOP-3381. Clear referenced when directories are deleted so that 
     effect of memory leaks are not multiplied. (rangadi)
 
+    HADOOP-2867. Adds the task's CWD to its LD_LIBRARY_PATH. 
+    (Amareshwari Sriramadasu via ddas)
+
   OPTIMIZATIONS
 
     HADOOP-3274. The default constructor of BytesWritable creates empty 

Modified: hadoop/core/trunk/docs/changes.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/changes.html?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/docs/changes.html (original)
+++ hadoop/core/trunk/docs/changes.html Wed May 21 21:16:11 2008
@@ -101,7 +101,7 @@
     </ol>
   </li>
   <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._new_features_')">  NEW FEATURES
-</a>&nbsp;&nbsp;&nbsp;(9)
+</a>&nbsp;&nbsp;&nbsp;(11)
     <ol id="trunk_(unreleased_changes)_._new_features_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3074">HADOOP-3074</a>. Provides a UrlStreamHandler for DFS and other FS,
 relying on FileSystem<br />(taton)</li>
@@ -123,10 +123,16 @@
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-2065">HADOOP-2065</a>. Delay invalidating corrupt replicas of block until its
 is removed from under replicated state. If all replicas are found to
 be corrupt, retain all copies and mark the block as corrupt.<br />(Lohit Vjayarenu via rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3221">HADOOP-3221</a>. Adds org.apache.hadoop.mapred.lib.NLineInputFormat, which
+splits files into splits each of N lines. N can be specified by
+configuration property "mapred.line.input.format.linespermap", which
+defaults to 1.<br />(Amareshwari Sriramadasu via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3336">HADOOP-3336</a>. Direct a subset of annotated FSNamesystem calls for audit
+logging.<br />(cdouglas)</li>
     </ol>
   </li>
   <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._improvements_')">  IMPROVEMENTS
-</a>&nbsp;&nbsp;&nbsp;(13)
+</a>&nbsp;&nbsp;&nbsp;(19)
     <ol id="trunk_(unreleased_changes)_._improvements_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-2928">HADOOP-2928</a>. Remove deprecated FileSystem.getContentLength().<br />(Lohit Vjayarenu via rangadi)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3130">HADOOP-3130</a>. Make the connect timeout smaller for getFile.<br />(Amar Ramesh Kamat via ddas)</li>
@@ -157,6 +163,16 @@
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3332">HADOOP-3332</a>. Reduces the amount of logging in Reducer's shuffle phase.<br />(Devaraj Das)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3355">HADOOP-3355</a>. Enhances Configuration class to accept hex numbers for getInt
 and getLong.<br />(Amareshwari Sriramadasu via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3350">HADOOP-3350</a>. Add an argument to distcp to permit the user to limit the
+number of maps.<br />(cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3013">HADOOP-3013</a>. Add corrupt block reporting to fsck.<br />(lohit vijayarenu via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3377">HADOOP-3377</a>. Remove TaskRunner::replaceAll and replace with equivalent
+String::replace.<br />(Brice Arnould via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3398">HADOOP-3398</a>. Minor improvement to a utility function in that participates
+in backoff calculation.<br />(cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3381">HADOOP-3381</a>. Clear referenced when directories are deleted so that
+effect of memory leaks are not multiplied.<br />(rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2867">HADOOP-2867</a>. Adds the task's CWD to its LD_LIBRARY_PATH.<br />(Amareshwari Sriramadasu via ddas)</li>
     </ol>
   </li>
   <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._optimizations_')">  OPTIMIZATIONS
@@ -181,7 +197,7 @@
     </ol>
   </li>
   <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._bug_fixes_')">  BUG FIXES
-</a>&nbsp;&nbsp;&nbsp;(31)
+</a>&nbsp;&nbsp;&nbsp;(42)
     <ol id="trunk_(unreleased_changes)_._bug_fixes_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-2905">HADOOP-2905</a>. 'fsck -move' triggers NPE in NameNode.<br />(Lohit Vjayarenu via rangadi)</li>
       <li>Increment ClientProtocol.versionID missed by <a href="http://issues.apache.org/jira/browse/HADOOP-2585">HADOOP-2585</a>.<br />(shv)</li>
@@ -246,6 +262,31 @@
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3203">HADOOP-3203</a>. Fixes TaskTracker::localizeJob to pass correct file sizes
 for the jarfile and the jobfile.<br />(Amareshwari Sriramadasu via ddas)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3391">HADOOP-3391</a>. Fix a findbugs warning introduced by <a href="http://issues.apache.org/jira/browse/HADOOP-3248">HADOOP-3248</a><br />(rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3393">HADOOP-3393</a>. Fix datanode shutdown to call DataBlockScanner::shutdown and
+close its log, even if the scanner thread is not running.<br />(lohit vijayarenu
+via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3399">HADOOP-3399</a>. A debug message was logged at info level.<br />(rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3396">HADOOP-3396</a>. TestDatanodeBlockScanner occationally fails.<br />(Lohit Vijayarenu via rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3339">HADOOP-3339</a>. Some of the failures on 3rd datanode in DFS write pipelie
+are not detected properly. This could lead to hard failure of client's
+write operation.<br />(rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3409">HADOOP-3409</a>. Namenode should save the root inode into fsimage.<br />(hairong)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3296">HADOOP-3296</a>. Fix task cache to work for more than two levels in the cache
+hierarchy. This also adds a new counter to track cache hits at levels
+greater than two.<br />(Amar Kamat via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3370">HADOOP-3370</a>. Ensure that the TaskTracker.runningJobs data-structure is
+correctly cleaned-up on task completion.<br />(Zheng Shao via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3375">HADOOP-3375</a>. Lease paths were sometimes not removed from
+LeaseManager.sortedLeasesByPath. (Tsz Wo (Nicholas), SZE via dhruba)
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3424">HADOOP-3424</a>. Values returned by getPartition should be checked to
+make sure they are in the range 0 to #reduces - 1<br />(cdouglas via
+omalley)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3408">HADOOP-3408</a>. Change FSNamesystem to send its metrics as integers to
+accommodate collectors that don't support long values.<br />(lohit vijayarenu
+via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3403">HADOOP-3403</a>. Fixes a problem in the JobTracker to do with handling of lost
+tasktrackers.<br />(Arun Murthy via ddas)</li>
     </ol>
   </li>
 </ul>

Modified: hadoop/core/trunk/docs/hadoop-default.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hadoop-default.html?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hadoop-default.html (original)
+++ hadoop/core/trunk/docs/hadoop-default.html Wed May 21 21:16:11 2008
@@ -656,6 +656,10 @@
     </td>
 </tr>
 <tr>
+<td><a name="mapred.line.input.format.linespermap">mapred.line.input.format.linespermap</a></td><td>1</td><td> Number of lines per split in NLineInputFormat.
+    </td>
+</tr>
+<tr>
 <td><a name="ipc.client.idlethreshold">ipc.client.idlethreshold</a></td><td>4000</td><td>Defines the threshold number of connections after which
                connections will be inspected for idleness.
   </td>

Modified: hadoop/core/trunk/docs/mapred_tutorial.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/mapred_tutorial.html?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/docs/mapred_tutorial.html (original)
+++ hadoop/core/trunk/docs/mapred_tutorial.html Wed May 21 21:16:11 2008
@@ -295,7 +295,7 @@
 <a href="#Example%3A+WordCount+v2.0">Example: WordCount v2.0</a>
 <ul class="minitoc">
 <li>
-<a href="#Source+Code-N10C84">Source Code</a>
+<a href="#Source+Code-N10C87">Source Code</a>
 </li>
 <li>
 <a href="#Sample+Runs">Sample Runs</a>
@@ -1586,11 +1586,12 @@
         the working directory of the task can be used to distribute native 
         libraries and load them. The underlying detail is that child-jvm always 
         has its <em>current working directory</em> added to the
-        <span class="codefrag">java.library.path</span> and hence the cached libraries can be 
+        <span class="codefrag">java.library.path</span> and <span class="codefrag">LD_LIBRARY_PATH</span>. 
+        And hence the cached libraries can be 
         loaded via <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#loadLibrary(java.lang.String)">
         System.loadLibrary</a> or <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#load(java.lang.String)">
         System.load</a>.</p>
-<a name="N108F8"></a><a name="Job+Submission+and+Monitoring"></a>
+<a name="N108FB"></a><a name="Job+Submission+and+Monitoring"></a>
 <h3 class="h4">Job Submission and Monitoring</h3>
 <p>
 <a href="api/org/apache/hadoop/mapred/JobClient.html">
@@ -1651,7 +1652,7 @@
 <p>Normally the user creates the application, describes various facets 
         of the job via <span class="codefrag">JobConf</span>, and then uses the 
         <span class="codefrag">JobClient</span> to submit the job and monitor its progress.</p>
-<a name="N10958"></a><a name="Job+Control"></a>
+<a name="N1095B"></a><a name="Job+Control"></a>
 <h4>Job Control</h4>
 <p>Users may need to chain map-reduce jobs to accomplish complex
           tasks which cannot be done via a single map-reduce job. This is fairly
@@ -1687,7 +1688,7 @@
             </li>
           
 </ul>
-<a name="N10982"></a><a name="Job+Input"></a>
+<a name="N10985"></a><a name="Job+Input"></a>
 <h3 class="h4">Job Input</h3>
 <p>
 <a href="api/org/apache/hadoop/mapred/InputFormat.html">
@@ -1735,7 +1736,7 @@
         appropriate <span class="codefrag">CompressionCodec</span>. However, it must be noted that
         compressed files with the above extensions cannot be <em>split</em> and 
         each compressed file is processed in its entirety by a single mapper.</p>
-<a name="N109EC"></a><a name="InputSplit"></a>
+<a name="N109EF"></a><a name="InputSplit"></a>
 <h4>InputSplit</h4>
 <p>
 <a href="api/org/apache/hadoop/mapred/InputSplit.html">
@@ -1749,7 +1750,7 @@
           FileSplit</a> is the default <span class="codefrag">InputSplit</span>. It sets 
           <span class="codefrag">map.input.file</span> to the path of the input file for the
           logical split.</p>
-<a name="N10A11"></a><a name="RecordReader"></a>
+<a name="N10A14"></a><a name="RecordReader"></a>
 <h4>RecordReader</h4>
 <p>
 <a href="api/org/apache/hadoop/mapred/RecordReader.html">
@@ -1761,7 +1762,7 @@
           for processing. <span class="codefrag">RecordReader</span> thus assumes the 
           responsibility of processing record boundaries and presents the tasks 
           with keys and values.</p>
-<a name="N10A34"></a><a name="Job+Output"></a>
+<a name="N10A37"></a><a name="Job+Output"></a>
 <h3 class="h4">Job Output</h3>
 <p>
 <a href="api/org/apache/hadoop/mapred/OutputFormat.html">
@@ -1786,7 +1787,7 @@
 <p>
 <span class="codefrag">TextOutputFormat</span> is the default 
         <span class="codefrag">OutputFormat</span>.</p>
-<a name="N10A5D"></a><a name="Task+Side-Effect+Files"></a>
+<a name="N10A60"></a><a name="Task+Side-Effect+Files"></a>
 <h4>Task Side-Effect Files</h4>
 <p>In some applications, component tasks need to create and/or write to
           side-files, which differ from the actual job-output files.</p>
@@ -1825,7 +1826,7 @@
 <p>The entire discussion holds true for maps of jobs with 
            reducer=NONE (i.e. 0 reduces) since output of the map, in that case, 
            goes directly to HDFS.</p>
-<a name="N10AA5"></a><a name="RecordWriter"></a>
+<a name="N10AA8"></a><a name="RecordWriter"></a>
 <h4>RecordWriter</h4>
 <p>
 <a href="api/org/apache/hadoop/mapred/RecordWriter.html">
@@ -1833,9 +1834,9 @@
           pairs to an output file.</p>
 <p>RecordWriter implementations write the job outputs to the 
           <span class="codefrag">FileSystem</span>.</p>
-<a name="N10ABC"></a><a name="Other+Useful+Features"></a>
+<a name="N10ABF"></a><a name="Other+Useful+Features"></a>
 <h3 class="h4">Other Useful Features</h3>
-<a name="N10AC2"></a><a name="Counters"></a>
+<a name="N10AC5"></a><a name="Counters"></a>
 <h4>Counters</h4>
 <p>
 <span class="codefrag">Counters</span> represent global counters, defined either by 
@@ -1849,7 +1850,7 @@
           Reporter.incrCounter(Enum, long)</a> in the <span class="codefrag">map</span> and/or 
           <span class="codefrag">reduce</span> methods. These counters are then globally 
           aggregated by the framework.</p>
-<a name="N10AED"></a><a name="DistributedCache"></a>
+<a name="N10AF0"></a><a name="DistributedCache"></a>
 <h4>DistributedCache</h4>
 <p>
 <a href="api/org/apache/hadoop/filecache/DistributedCache.html">
@@ -1883,7 +1884,7 @@
           <a href="api/org/apache/hadoop/filecache/DistributedCache.html#createSymlink(org.apache.hadoop.conf.Configuration)">
           DistributedCache.createSymlink(Configuration)</a> api. Files 
           have <em>execution permissions</em> set.</p>
-<a name="N10B2B"></a><a name="Tool"></a>
+<a name="N10B2E"></a><a name="Tool"></a>
 <h4>Tool</h4>
 <p>The <a href="api/org/apache/hadoop/util/Tool.html">Tool</a> 
           interface supports the handling of generic Hadoop command-line options.
@@ -1923,7 +1924,7 @@
             </span>
           
 </p>
-<a name="N10B5D"></a><a name="IsolationRunner"></a>
+<a name="N10B60"></a><a name="IsolationRunner"></a>
 <h4>IsolationRunner</h4>
 <p>
 <a href="api/org/apache/hadoop/mapred/IsolationRunner.html">
@@ -1947,7 +1948,7 @@
 <p>
 <span class="codefrag">IsolationRunner</span> will run the failed task in a single 
           jvm, which can be in the debugger, over precisely the same input.</p>
-<a name="N10B90"></a><a name="Debugging"></a>
+<a name="N10B93"></a><a name="Debugging"></a>
 <h4>Debugging</h4>
 <p>Map/Reduce framework provides a facility to run user-provided 
           scripts for debugging. When map/reduce task fails, user can run 
@@ -1958,7 +1959,7 @@
 <p> In the following sections we discuss how to submit debug script
           along with the job. For submitting debug script, first it has to
           distributed. Then the script has to supplied in Configuration. </p>
-<a name="N10B9C"></a><a name="How+to+distribute+script+file%3A"></a>
+<a name="N10B9F"></a><a name="How+to+distribute+script+file%3A"></a>
 <h5> How to distribute script file: </h5>
 <p>
           To distribute  the debug script file, first copy the file to the dfs.
@@ -1981,7 +1982,7 @@
           <a href="api/org/apache/hadoop/filecache/DistributedCache.html#createSymlink(org.apache.hadoop.conf.Configuration)">
           DistributedCache.createSymLink(Configuration) </a> api.
           </p>
-<a name="N10BB5"></a><a name="How+to+submit+script%3A"></a>
+<a name="N10BB8"></a><a name="How+to+submit+script%3A"></a>
 <h5> How to submit script: </h5>
 <p> A quick way to submit debug script is to set values for the 
           properties "mapred.map.task.debug.script" and 
@@ -2005,17 +2006,17 @@
 <span class="codefrag">$script $stdout $stderr $syslog $jobconf $program </span>  
           
 </p>
-<a name="N10BD7"></a><a name="Default+Behavior%3A"></a>
+<a name="N10BDA"></a><a name="Default+Behavior%3A"></a>
 <h5> Default Behavior: </h5>
 <p> For pipes, a default script is run to process core dumps under
           gdb, prints stack trace and gives info about running threads. </p>
-<a name="N10BE2"></a><a name="JobControl"></a>
+<a name="N10BE5"></a><a name="JobControl"></a>
 <h4>JobControl</h4>
 <p>
 <a href="api/org/apache/hadoop/mapred/jobcontrol/package-summary.html">
           JobControl</a> is a utility which encapsulates a set of Map-Reduce jobs
           and their dependencies.</p>
-<a name="N10BEF"></a><a name="Data+Compression"></a>
+<a name="N10BF2"></a><a name="Data+Compression"></a>
 <h4>Data Compression</h4>
 <p>Hadoop Map-Reduce provides facilities for the application-writer to
           specify compression for both intermediate map-outputs and the
@@ -2029,7 +2030,7 @@
           codecs for reasons of both performance (zlib) and non-availability of
           Java libraries (lzo). More details on their usage and availability are
           available <a href="native_libraries.html">here</a>.</p>
-<a name="N10C0F"></a><a name="Intermediate+Outputs"></a>
+<a name="N10C12"></a><a name="Intermediate+Outputs"></a>
 <h5>Intermediate Outputs</h5>
 <p>Applications can control compression of intermediate map-outputs
             via the 
@@ -2050,7 +2051,7 @@
             <a href="api/org/apache/hadoop/mapred/JobConf.html#setMapOutputCompressionType(org.apache.hadoop.io.SequenceFile.CompressionType)">
             JobConf.setMapOutputCompressionType(SequenceFile.CompressionType)</a> 
             api.</p>
-<a name="N10C3B"></a><a name="Job+Outputs"></a>
+<a name="N10C3E"></a><a name="Job+Outputs"></a>
 <h5>Job Outputs</h5>
 <p>Applications can control compression of job-outputs via the
             <a href="api/org/apache/hadoop/mapred/OutputFormatBase.html#setCompressOutput(org.apache.hadoop.mapred.JobConf,%20boolean)">
@@ -2070,7 +2071,7 @@
 </div>
 
     
-<a name="N10C6A"></a><a name="Example%3A+WordCount+v2.0"></a>
+<a name="N10C6D"></a><a name="Example%3A+WordCount+v2.0"></a>
 <h2 class="h3">Example: WordCount v2.0</h2>
 <div class="section">
 <p>Here is a more complete <span class="codefrag">WordCount</span> which uses many of the
@@ -2080,7 +2081,7 @@
       <a href="quickstart.html#SingleNodeSetup">pseudo-distributed</a> or
       <a href="quickstart.html#Fully-Distributed+Operation">fully-distributed</a> 
       Hadoop installation.</p>
-<a name="N10C84"></a><a name="Source+Code-N10C84"></a>
+<a name="N10C87"></a><a name="Source+Code-N10C87"></a>
 <h3 class="h4">Source Code</h3>
 <table class="ForrestTable" cellspacing="1" cellpadding="4">
           
@@ -3290,7 +3291,7 @@
 </tr>
         
 </table>
-<a name="N113E6"></a><a name="Sample+Runs"></a>
+<a name="N113E9"></a><a name="Sample+Runs"></a>
 <h3 class="h4">Sample Runs</h3>
 <p>Sample text-files as input:</p>
 <p>
@@ -3458,7 +3459,7 @@
 <br>
         
 </p>
-<a name="N114BA"></a><a name="Highlights"></a>
+<a name="N114BD"></a><a name="Highlights"></a>
 <h3 class="h4">Highlights</h3>
 <p>The second version of <span class="codefrag">WordCount</span> improves upon the 
         previous one by using some features offered by the Map-Reduce framework:

Modified: hadoop/core/trunk/docs/mapred_tutorial.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/mapred_tutorial.pdf?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/docs/mapred_tutorial.pdf (original)
+++ hadoop/core/trunk/docs/mapred_tutorial.pdf Wed May 21 21:16:11 2008
@@ -1187,10 +1187,10 @@
 >>
 endobj
 142 0 obj
-<< /Length 2632 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2685 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0Fh2g=#&V&]Q69#[h"GjT$,t`48HJ@SbLJ*!-Fe>+si6&FOX=WWbai=>S*U:N\b+e5ZkX,bWedQ2?o0&Qb2@k;j4T,0iG^K5[j29Ru^)+gEHq)>-?SRu^8suT2p[[g7LECCHU`lG\[scTs!mgc28$=:JN'r-U*PKf1aEgQ6:NFc/.8.=[pY=.\IUlbMJS)5-f]^!RGB\h6>te]MhAj4Y^&,.;C+We]>&9gUFqB=F[i]062X2aS<V7lG&"haIcO]KXIs[ZWY9]WqA;#o-KtM"09j&_r#o>Q0qM^Y0V'f:0jM'$SQE'`X^6dSm:!f(Ml]+-&ih_%kX_;L8G8W'R_i#AH2jN$UVcmLA5]8dQ!5n*l$eJC.^MSQNC_c8R/eC[I=,8:B"5S,3a8*>_F)u]Oj2^q(s5?H4YK8h"m7T6Fh%K(#+_92X/-VCbRo&L6c3KbU='n]m1-U&N8""Fh^J2YY!5gU\b8U=aC3>\DN9eZO\/0.5-";XAkS*6%kU$1T#ZdGkHk9J_,dP.ca7%R50pfjpj\W(%JaLA\&?"O1B#ET/oW'P:j+FJ`,--tu5T&El4=NgW5=f__XEjL89ch!]+?;V9+K/'!SBD_n[DZf`m[PdknR1E-)_>l*C^#'CNIn+>bRoFBo":Ot`",FcnaaL^EIaVU)rbqsfL0k),EP6\:9J9;(.EYD/Y0$]L,$V[A@%$SGM-Rg.`-=#iX)qEr5;0>XuCAGn67"QI)`KQl6(sXg_g2M%cVS!j"-Sk,e9u>d"kLf4dN8JM@g#-6DNc8jJlb7<5T([XQf=\<J-VV=aoV^ROK?kV;6!U;JCon;97[4/F5FoC1.>o%U%tJ*,`S<jC7i$$c4p1a$*&rg:\Mj#fZ,Ul36;Fk2e"l$;.BEoKT<AK%IK*0Z%:A6B"d)7*3d`70-BZjCUKl_NY0S!#u)s)W+=D:]@88LkQDj5hmgt.R)t"NTVfS"*h)_%1u-40dsFlEh'lfr<j(
 b&&!V]h"`)!K9_bql3dg/V<;!@/j.>RE,SL-TJKjmB:l-7!M6J]04Y1Iqq%(n<`*HpB9QJ#kH5+n6;j;SmgP;tIJ7.2':]jhj-;#1"+o&.oVtd>6;2-p&_Uqs@03$3n,VQ&FY$MnMQBKsXhLF.5g2']K*keH9%VU'Y4e7O?ITJ"q8CJ,DdqI/5KWI#!aU;:"K?-B2cb");u5.T]T.6TIAJF7SE(8U,KV(=<Lk^;XCad@Yd9IT`C]/=;>p#onmL<O+rH)eYeN";9-+05>5(3"KR>h:bc\AiR'J-0g4>#oC?rp?'UdauXMk`"JfEQmJdJue*+ZSPTH(X43>RW0p&r[leCWD7"#!1oM3HTSnlLI[F.(4Ji1gj2=-P)(2cfDsr@Li2qFCf=_E4EHr%SjIMqSB0.35-rnTuK2M47NO@au/NrG9,O/*LlU&f>s)?s(RTQouY/,ad"5\_;g1_"JnuGg&#XOVblfUZqGhg'-2\E3MuWLKstG,bA!2jpjTe)s8c>L)mOdiK8P^iuJV"8<S:^,ce?k=rsAp]-F:R'e8)eeX3J[F+8raU=>g`h)%Ba`ab$:[g`nGaV^di)ck91M:p+$rs1o!.Lr09>F40r/qcF#VR/-tC!=eB]H]D1DK22dXt/@Fh$OhQl8?qe!YK.W^gneT)WqEBpAu(Vmi&r7GBQtHnB9E>T;,*f)%,:(h^VV=P>-D?M7Ep2r2bqf2sN4FOj.ak;/X@52gOe(S1HUeQH"h@e)>_p'G8It94/_30Of:io%edh]Ca`cnG(i;>F(a3f`4VBP8RY'+,2lH*['bMgn;h1XWh))/^t1A+\DftYWuF@!D>\`7nZ8riBJpGZ=[Zm[C#n]$5]ee?Coq$TrmWRUB1hIHIPicJ?F*qS3c<T9Ls>!ht6mJjbRjErg"F-a(#leJFOo(fn%@I\hHUjNULjJe(pJs`m!DMb>.003a9A:]Q%b/k;&&3)S\r#rrL2N^N0]a4Edrhcal
 [9&$&Rfr^l:IX0#XLn_L&3)G^aHRLsm1G[NE^llcg.U"T8#=_S+RN2jkl'c:.X>*`7&AnqT^BT2_^E,+[[d#B]YEQr9_aTuNaDRiM(8a[K"6T[UqoWks8]S<ki...@2>@e%VDWpiP53`(,^i%e1#IAHP,EaCe(r,XTI9XLK(4kAZ!dTPJ&]:Yc"plMd?4*W-1s0UE5I:Vfbb4e"1M+CIU;!7YVg^e]*WB"JJ,Sf\cY?ORqf]`$nkh9`[Z+.9aL\7A41'35kU[h]S=jR;Oo$edSajo~>
+Gau0FD3*F0')oV[67<=W!lS>@&gb*GP&8[T8:%hJn&+*^"LLnXbfZ)@8N-;"hbYuW:_I@&JpuomV:CY`cceNCP.k)TrNa$3l]+#Qq!ZhHV+Y&@$q'e-0`Cm#"dB-2F-LXpGQ57$F&cTcP$n'mlaRFIS56m\XT2iVE!,:epb!l9V0@3K3%g%jjIDd]7fNB=F/T=!X'Kq.g,j7to?\NpOq<:J8*@W?I[3F%jLQh[p47,lK(/1$X\?Y_HUrBYI,sDJo*bNgeP#($BD)-m_kB\+a^AGsnI`V,LaXPJbR'h']d,At+\R$"?R]=(/H,LPe_@33d#(98k'//jF8=6eGdUUZCj=YuX@</9<JYMl<+]58d-DctJ73HtQ)gXmhfM0Bf7l.AVs$[C'^/A4#.j1ENmi3=qW@X?qmYP's4r[+]-PQZ2D<m"n)iQ[M]`rHZ5?sV9YkP#Cd,pN]D-\5P5a:44N`>XjE[ET"W4t9M(I&HF-W<W(?;tI$F_K;7k-E1qC_;S!Bk(f)\^P^4s,Fj$]2MLbPq7qq3]7qWN_ajLVS'E"6cP&jKn:5S>dm(me[f)WPk[X'EUT'57pID,&X<lEG!=NVsfN,m01W2>ma/G6I1Kn/$:-Udg5+^j+@V,TsDQ#<p<XMe<hY?P03tOBHYXE8O-OQ`0Vn@!Yd$7R6RHf%NN*Z/?U7]n&9o0.]#O:hW@IH./JAu3?"8T6h]8^1S5E]1+(u<YcmuC8`QsdE[C6k+;t(c%?@aN8#]\p@u.etq9/ZmhL'YJks&N=^0\LBb<m2/`DN/<`Y!>)ksee'BUF;`d:pi-*N<07,e9c22<[;Zo'0CIj/*$'Daq^g<ejflosFSj>a1<i>)W-7P:#Q1NMH1s,ag*>St>9!]\fdTZ/mpFg7L.&m=^r,2+WC*![)N^58A*&6l>TcYG!I5!UtHE7KoYm+(\;7D7=K0LFe^PDKQH_^_eX?o9TUJl^G&.JdWgl=s(aHpl&);F%BB
 aNA#5LY<In...@Zs>P[3nj0!OMkg`29!TGClhi3b])Pj#uj/.]4Q;;fEDOZ,%>"_U"*28]eqLYbjj>jDT]g\>:leu<F5Mb%ZA[4M]j\8>FY0#<3GkbpmL!"^\fThi)$#%CIJ*RJ,L!XnMB#$rG/b)Ub5JftM-f8C`K8mefu,jJ'",0s4kgaCbrT=Yo9-#Pp9I.9dE.i]q+Uk2!959`ORP*_H]ea,&6XF"eW52q;T9?F!lO\8fS\^;00O]Y;Q5%&"I-.>eYS4)nr`T;2&:]fdAV;GTOa]sKaUSts%M;KcXE"EtpbSss41p9LZ*a)J]Ik5WFOZU+Q0gpcS::hKR6EV43S.Tn`GrHQV\:'B#5d48MfK+?]&:5[]6M$H!1^9"d,3P-8KB*tCSp4-Nad9!qJHG%fF\qil5QTbLR,Ci+-4j0p;+6>V.To<t/OL.`<GKZPk0)CBHZ'_:]WD4P>(4B9'*'A$-pJM_Y6G<fJcmt/_DMs_Va@;VDDJEl"mDM#IL0o]Mi1-c+j6MFkm(s5c@Re+P)C9l/!t%Y]8%VmU`,>*;)^l6ZWh`s-Io!id-+c67^$;CgH4a5`U6RjWWW1?ml>u*GCUb=I?)lq=?/Y[PK\IPm,Gi@mR,A\0"\)gn6Ir<1mp;SDWV73:)m-?fT1UDMDn\IHkmX6"r^D_,E36O/-EE!4CKdhTORA,F._mG7[4(*4<?C4D3?!6"?u<lQK:N@Bra5@2aN)2Bf!Ye]'#9m4DiGBDT.W;8SMn/N%c-8`eu^lXhfZ@I)HM9?u,?f@X-St_\_,]h7"6Vs"OD:&a"-u5[(qO@k6i^E!P5$A6aX(FIAdBaBFs'9cu_6#lnCb[A3hhJ7eP1M+GO6)kgieama"^`i"qOfTs35fdWVtlZ8g&UO"S/(m%)94'0^:T?r/1/lPiHhaJOT*RS49k!A`_@=]:5:K!]7aGf=L3sdj[a5K
 ^9.gu!n@J@qt99SXXr#OpZj8@?'0g/e8H2eBd&)AQXA:!.Kg:qDY]mX#T(:S4N&7',6*61")!pcRp5o(,K:F?[s`i1toi@NL%7Q`3gi#/;)*;fpE)_<T4...@f>I=Zbb?D_+S4k[.,,jgSR@]f%>jh"1&i13cQIPb1n>#o#=NKk6.D-Se829C`9A+?SLH_mF_%J305%RHjtlTm:jaSN.WedFblB4fSPuupVtUiD!X!4dXg3/1<pB/@7WHei&Le*dOj^B7J:7a6i')XoS[O#>@iG*8sL]h"$J#d?@$j&7('GGk.GmY.sY!fpAj&hEHc]AWq9E2'9b?Jbpo3o&S,^is)q!*Ik9rth)1bQ"6_"j=uAM7]m1Q.a9q2jYQ4-:;8DZNRfQrNb_Z?8%up-PmLQ_C,!BVRq!9`h5C'CNohXt$Y^(JaGQ7$d4?mGio%^\Nc'u1FQ#>n-,tP+O$CZbHmK,NZi.)Itbrp+I"!rp7Y5~>
 endstream
 endobj
 143 0 obj
@@ -1225,7 +1225,7 @@
 146 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 324.252 598.8 419.244 586.8 ]
+/Rect [ 90.0 585.6 184.992 573.6 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#loadLibrary(java.lang.String))
@@ -1236,7 +1236,7 @@
 147 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 435.24 598.8 494.244 586.8 ]
+/Rect [ 200.988 585.6 259.992 573.6 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#load(java.lang.String))
@@ -1247,7 +1247,7 @@
 148 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 90.0 547.547 136.008 535.547 ]
+/Rect [ 90.0 534.347 136.008 522.347 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (api/org/apache/hadoop/mapred/JobClient.html)
@@ -1258,7 +1258,7 @@
 149 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 154.308 217.147 232.98 205.147 ]
+/Rect [ 154.308 203.947 232.98 191.947 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (api/org/apache/hadoop/mapred/OutputLogFilter.html)
@@ -2622,7 +2622,7 @@
 33 0 obj
 <<
 /S /GoTo
-/D [143 0 R /XYZ 85.0 575.8 null]
+/D [143 0 R /XYZ 85.0 562.6 null]
 >>
 endobj
 35 0 obj
@@ -2753,7 +2753,7 @@
 271 0 obj
 <<
 /S /GoTo
-/D [143 0 R /XYZ 85.0 159.747 null]
+/D [143 0 R /XYZ 85.0 146.547 null]
 >>
 endobj
 274 0 obj
@@ -2855,53 +2855,53 @@
 xref
 0 319
 0000000000 65535 f 
-0000114926 00000 n 
-0000115207 00000 n 
-0000115300 00000 n 
+0000114977 00000 n 
+0000115258 00000 n 
+0000115351 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
 0000001299 00000 n 
 0000001419 00000 n 
 0000001577 00000 n 
-0000115452 00000 n 
+0000115503 00000 n 
 0000001712 00000 n 
-0000115515 00000 n 
+0000115566 00000 n 
 0000001849 00000 n 
-0000115581 00000 n 
+0000115632 00000 n 
 0000001986 00000 n 
-0000115647 00000 n 
+0000115698 00000 n 
 0000002123 00000 n 
-0000115711 00000 n 
+0000115762 00000 n 
 0000002259 00000 n 
-0000115777 00000 n 
+0000115828 00000 n 
 0000002396 00000 n 
-0000115843 00000 n 
+0000115894 00000 n 
 0000002533 00000 n 
-0000115907 00000 n 
+0000115958 00000 n 
 0000002669 00000 n 
-0000115971 00000 n 
+0000116022 00000 n 
 0000002806 00000 n 
-0000116035 00000 n 
+0000116086 00000 n 
 0000002943 00000 n 
-0000116099 00000 n 
+0000116150 00000 n 
 0000003078 00000 n 
-0000116166 00000 n 
+0000116217 00000 n 
 0000003215 00000 n 
-0000116231 00000 n 
+0000116282 00000 n 
 0000003352 00000 n 
-0000116296 00000 n 
+0000116347 00000 n 
 0000003487 00000 n 
-0000116361 00000 n 
+0000116412 00000 n 
 0000003624 00000 n 
-0000116428 00000 n 
+0000116479 00000 n 
 0000003761 00000 n 
-0000116495 00000 n 
+0000116546 00000 n 
 0000003897 00000 n 
-0000116560 00000 n 
+0000116611 00000 n 
 0000004034 00000 n 
-0000116627 00000 n 
+0000116678 00000 n 
 0000004171 00000 n 
-0000116692 00000 n 
+0000116743 00000 n 
 0000004308 00000 n 
 0000006939 00000 n 
 0000007062 00000 n 
@@ -2994,185 +2994,185 @@
 0000051557 00000 n 
 0000051602 00000 n 
 0000051811 00000 n 
-0000116757 00000 n 
+0000116808 00000 n 
 0000051947 00000 n 
 0000052238 00000 n 
-0000054964 00000 n 
-0000055090 00000 n 
-0000055151 00000 n 
-0000055437 00000 n 
-0000055679 00000 n 
-0000055913 00000 n 
-0000056108 00000 n 
-0000056311 00000 n 
-0000059273 00000 n 
-0000059399 00000 n 
-0000059476 00000 n 
-0000059709 00000 n 
-0000059945 00000 n 
-0000060138 00000 n 
-0000060371 00000 n 
-0000060566 00000 n 
-0000060767 00000 n 
-0000060968 00000 n 
-0000063400 00000 n 
-0000063526 00000 n 
-0000063579 00000 n 
-0000063775 00000 n 
-0000063970 00000 n 
-0000064167 00000 n 
-0000064365 00000 n 
-0000067011 00000 n 
-0000067137 00000 n 
-0000067198 00000 n 
-0000067447 00000 n 
-0000067699 00000 n 
-0000067897 00000 n 
-0000068125 00000 n 
-0000068330 00000 n 
-0000071014 00000 n 
-0000071140 00000 n 
-0000071201 00000 n 
-0000071454 00000 n 
-0000071644 00000 n 
-0000071849 00000 n 
-0000072096 00000 n 
-0000072297 00000 n 
-0000074768 00000 n 
-0000074894 00000 n 
-0000074955 00000 n 
-0000075230 00000 n 
-0000075505 00000 n 
-0000075763 00000 n 
-0000075992 00000 n 
-0000076227 00000 n 
-0000078916 00000 n 
-0000079042 00000 n 
-0000079191 00000 n 
-0000079402 00000 n 
-0000079610 00000 n 
-0000079785 00000 n 
-0000079980 00000 n 
-0000080154 00000 n 
-0000080330 00000 n 
-0000080553 00000 n 
-0000080794 00000 n 
-0000080990 00000 n 
-0000081203 00000 n 
-0000081420 00000 n 
-0000081639 00000 n 
-0000081911 00000 n 
-0000082176 00000 n 
-0000082456 00000 n 
-0000082669 00000 n 
-0000085268 00000 n 
-0000085394 00000 n 
-0000085447 00000 n 
-0000085768 00000 n 
-0000086086 00000 n 
-0000086272 00000 n 
-0000086470 00000 n 
-0000088752 00000 n 
-0000088862 00000 n 
-0000091209 00000 n 
-0000091319 00000 n 
-0000093643 00000 n 
-0000093753 00000 n 
-0000096092 00000 n 
-0000096202 00000 n 
-0000098416 00000 n 
-0000098526 00000 n 
-0000100520 00000 n 
-0000100630 00000 n 
-0000101885 00000 n 
-0000101995 00000 n 
-0000103709 00000 n 
-0000116817 00000 n 
-0000103819 00000 n 
-0000103955 00000 n 
-0000104148 00000 n 
-0000104306 00000 n 
-0000104522 00000 n 
-0000104806 00000 n 
-0000104976 00000 n 
-0000105126 00000 n 
-0000105302 00000 n 
-0000105618 00000 n 
-0000116871 00000 n 
-0000105808 00000 n 
-0000116938 00000 n 
-0000106002 00000 n 
-0000117003 00000 n 
-0000106194 00000 n 
-0000117070 00000 n 
-0000106409 00000 n 
-0000117137 00000 n 
-0000106577 00000 n 
-0000117204 00000 n 
-0000106784 00000 n 
-0000117269 00000 n 
-0000106988 00000 n 
-0000117335 00000 n 
-0000107165 00000 n 
-0000117402 00000 n 
-0000107405 00000 n 
-0000117469 00000 n 
-0000107602 00000 n 
-0000117535 00000 n 
-0000107799 00000 n 
-0000117603 00000 n 
-0000107978 00000 n 
-0000108184 00000 n 
-0000108405 00000 n 
-0000108689 00000 n 
-0000117671 00000 n 
-0000109022 00000 n 
-0000109188 00000 n 
-0000117739 00000 n 
-0000109403 00000 n 
-0000117805 00000 n 
-0000109579 00000 n 
-0000109767 00000 n 
-0000117873 00000 n 
-0000109988 00000 n 
-0000117941 00000 n 
-0000110233 00000 n 
-0000110421 00000 n 
-0000118007 00000 n 
-0000110693 00000 n 
-0000118075 00000 n 
-0000110857 00000 n 
-0000118143 00000 n 
-0000111084 00000 n 
-0000118209 00000 n 
-0000111239 00000 n 
-0000118277 00000 n 
-0000111460 00000 n 
-0000118343 00000 n 
-0000111687 00000 n 
-0000118411 00000 n 
-0000111988 00000 n 
-0000118479 00000 n 
-0000112251 00000 n 
-0000118545 00000 n 
-0000112477 00000 n 
-0000118613 00000 n 
-0000112668 00000 n 
-0000118681 00000 n 
-0000112921 00000 n 
-0000118749 00000 n 
-0000113166 00000 n 
-0000113357 00000 n 
-0000113626 00000 n 
-0000113796 00000 n 
-0000113981 00000 n 
-0000114146 00000 n 
-0000114260 00000 n 
-0000114371 00000 n 
-0000114483 00000 n 
-0000114592 00000 n 
-0000114699 00000 n 
-0000114816 00000 n 
+0000055017 00000 n 
+0000055143 00000 n 
+0000055204 00000 n 
+0000055490 00000 n 
+0000055729 00000 n 
+0000055964 00000 n 
+0000056159 00000 n 
+0000056362 00000 n 
+0000059324 00000 n 
+0000059450 00000 n 
+0000059527 00000 n 
+0000059760 00000 n 
+0000059996 00000 n 
+0000060189 00000 n 
+0000060422 00000 n 
+0000060617 00000 n 
+0000060818 00000 n 
+0000061019 00000 n 
+0000063451 00000 n 
+0000063577 00000 n 
+0000063630 00000 n 
+0000063826 00000 n 
+0000064021 00000 n 
+0000064218 00000 n 
+0000064416 00000 n 
+0000067062 00000 n 
+0000067188 00000 n 
+0000067249 00000 n 
+0000067498 00000 n 
+0000067750 00000 n 
+0000067948 00000 n 
+0000068176 00000 n 
+0000068381 00000 n 
+0000071065 00000 n 
+0000071191 00000 n 
+0000071252 00000 n 
+0000071505 00000 n 
+0000071695 00000 n 
+0000071900 00000 n 
+0000072147 00000 n 
+0000072348 00000 n 
+0000074819 00000 n 
+0000074945 00000 n 
+0000075006 00000 n 
+0000075281 00000 n 
+0000075556 00000 n 
+0000075814 00000 n 
+0000076043 00000 n 
+0000076278 00000 n 
+0000078967 00000 n 
+0000079093 00000 n 
+0000079242 00000 n 
+0000079453 00000 n 
+0000079661 00000 n 
+0000079836 00000 n 
+0000080031 00000 n 
+0000080205 00000 n 
+0000080381 00000 n 
+0000080604 00000 n 
+0000080845 00000 n 
+0000081041 00000 n 
+0000081254 00000 n 
+0000081471 00000 n 
+0000081690 00000 n 
+0000081962 00000 n 
+0000082227 00000 n 
+0000082507 00000 n 
+0000082720 00000 n 
+0000085319 00000 n 
+0000085445 00000 n 
+0000085498 00000 n 
+0000085819 00000 n 
+0000086137 00000 n 
+0000086323 00000 n 
+0000086521 00000 n 
+0000088803 00000 n 
+0000088913 00000 n 
+0000091260 00000 n 
+0000091370 00000 n 
+0000093694 00000 n 
+0000093804 00000 n 
+0000096143 00000 n 
+0000096253 00000 n 
+0000098467 00000 n 
+0000098577 00000 n 
+0000100571 00000 n 
+0000100681 00000 n 
+0000101936 00000 n 
+0000102046 00000 n 
+0000103760 00000 n 
+0000116868 00000 n 
+0000103870 00000 n 
+0000104006 00000 n 
+0000104199 00000 n 
+0000104357 00000 n 
+0000104573 00000 n 
+0000104857 00000 n 
+0000105027 00000 n 
+0000105177 00000 n 
+0000105353 00000 n 
+0000105669 00000 n 
+0000116922 00000 n 
+0000105859 00000 n 
+0000116989 00000 n 
+0000106053 00000 n 
+0000117054 00000 n 
+0000106245 00000 n 
+0000117121 00000 n 
+0000106460 00000 n 
+0000117188 00000 n 
+0000106628 00000 n 
+0000117255 00000 n 
+0000106835 00000 n 
+0000117320 00000 n 
+0000107039 00000 n 
+0000117386 00000 n 
+0000107216 00000 n 
+0000117453 00000 n 
+0000107456 00000 n 
+0000117520 00000 n 
+0000107653 00000 n 
+0000117586 00000 n 
+0000107850 00000 n 
+0000117654 00000 n 
+0000108029 00000 n 
+0000108235 00000 n 
+0000108456 00000 n 
+0000108740 00000 n 
+0000117722 00000 n 
+0000109073 00000 n 
+0000109239 00000 n 
+0000117790 00000 n 
+0000109454 00000 n 
+0000117856 00000 n 
+0000109630 00000 n 
+0000109818 00000 n 
+0000117924 00000 n 
+0000110039 00000 n 
+0000117992 00000 n 
+0000110284 00000 n 
+0000110472 00000 n 
+0000118058 00000 n 
+0000110744 00000 n 
+0000118126 00000 n 
+0000110908 00000 n 
+0000118194 00000 n 
+0000111135 00000 n 
+0000118260 00000 n 
+0000111290 00000 n 
+0000118328 00000 n 
+0000111511 00000 n 
+0000118394 00000 n 
+0000111738 00000 n 
+0000118462 00000 n 
+0000112039 00000 n 
+0000118530 00000 n 
+0000112302 00000 n 
+0000118596 00000 n 
+0000112528 00000 n 
+0000118664 00000 n 
+0000112719 00000 n 
+0000118732 00000 n 
+0000112972 00000 n 
+0000118800 00000 n 
+0000113217 00000 n 
+0000113408 00000 n 
+0000113677 00000 n 
+0000113847 00000 n 
+0000114032 00000 n 
+0000114197 00000 n 
+0000114311 00000 n 
+0000114422 00000 n 
+0000114534 00000 n 
+0000114643 00000 n 
+0000114750 00000 n 
+0000114867 00000 n 
 trailer
 <<
 /Size 319
@@ -3180,5 +3180,5 @@
 /Info 4 0 R
 >>
 startxref
-118817
+118868
 %%EOF

Modified: hadoop/core/trunk/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml (original)
+++ hadoop/core/trunk/src/docs/src/documentation/content/xdocs/mapred_tutorial.xml Wed May 21 21:16:11 2008
@@ -1109,7 +1109,8 @@
         the working directory of the task can be used to distribute native 
         libraries and load them. The underlying detail is that child-jvm always 
         has its <em>current working directory</em> added to the
-        <code>java.library.path</code> and hence the cached libraries can be 
+        <code>java.library.path</code> and <code>LD_LIBRARY_PATH</code>. 
+        And hence the cached libraries can be 
         loaded via <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#loadLibrary(java.lang.String)">
         System.loadLibrary</a> or <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#load(java.lang.String)">
         System.load</a>.</p>

Modified: hadoop/core/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java?rev=658998&r1=658997&r2=658998&view=diff
==============================================================================
--- hadoop/core/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java (original)
+++ hadoop/core/trunk/src/java/org/apache/hadoop/mapred/TaskRunner.java Wed May 21 21:16:11 2008
@@ -28,7 +28,9 @@
 import java.io.*;
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Vector;
 import java.net.URI;
 
@@ -387,9 +389,18 @@
       stdout.getParentFile().mkdirs();
       List<String> wrappedCommand = 
         TaskLog.captureOutAndError(setup, vargs, stdout, stderr, logSize);
-      
+      Map<String, String> env = new HashMap<String, String>();
+      StringBuffer ldLibraryPath = new StringBuffer();
+      ldLibraryPath.append(workDir.toString());
+      String oldLdLibraryPath = null;
+      oldLdLibraryPath = System.getenv("LD_LIBRARY_PATH");
+      if (oldLdLibraryPath != null) {
+        ldLibraryPath.append(sep);
+        ldLibraryPath.append(oldLdLibraryPath);
+      }
+      env.put("LD_LIBRARY_PATH", ldLibraryPath.toString());
       // Run the task as child of the parent TaskTracker process
-      runChild(wrappedCommand, workDir, taskid);
+      runChild(wrappedCommand, workDir, env, taskid);
 
     } catch (FSError e) {
       LOG.fatal("FSError", e);
@@ -432,10 +443,11 @@
    * Run the child process
    */
   private void runChild(List<String> args, File dir,
+                        Map<String, String> env,
                         TaskAttemptID taskid) throws IOException {
 
     try {
-      shexec = new ShellCommandExecutor(args.toArray(new String[0]), dir);
+      shexec = new ShellCommandExecutor(args.toArray(new String[0]), dir, env);
       shexec.execute();
     } catch (IOException ioe) {
       // do nothing