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 cd...@apache.org on 2008/06/14 02:39:13 UTC

svn commit: r667706 - in /hadoop/core/trunk: ./ docs/ src/docs/src/documentation/content/xdocs/

Author: cdouglas
Date: Fri Jun 13 17:39:12 2008
New Revision: 667706

URL: http://svn.apache.org/viewvc?rev=667706&view=rev
Log:
HADOOP-2984. Add forrest documentation for DistCp.


Added:
    hadoop/core/trunk/docs/distcp.html
    hadoop/core/trunk/docs/distcp.pdf
    hadoop/core/trunk/src/docs/src/documentation/content/xdocs/distcp.xml
Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/docs/cluster_setup.html
    hadoop/core/trunk/docs/hadoop_archives.html
    hadoop/core/trunk/docs/hdfs_design.html
    hadoop/core/trunk/docs/hdfs_permissions_guide.html
    hadoop/core/trunk/docs/hdfs_quota_admin_guide.html
    hadoop/core/trunk/docs/hdfs_shell.html
    hadoop/core/trunk/docs/hdfs_user_guide.html
    hadoop/core/trunk/docs/hod.html
    hadoop/core/trunk/docs/hod_admin_guide.html
    hadoop/core/trunk/docs/hod_config_guide.html
    hadoop/core/trunk/docs/hod_user_guide.html
    hadoop/core/trunk/docs/index.html
    hadoop/core/trunk/docs/linkmap.html
    hadoop/core/trunk/docs/linkmap.pdf
    hadoop/core/trunk/docs/mapred_tutorial.html
    hadoop/core/trunk/docs/native_libraries.html
    hadoop/core/trunk/docs/quickstart.html
    hadoop/core/trunk/docs/streaming.html
    hadoop/core/trunk/src/docs/src/documentation/content/xdocs/site.xml

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Fri Jun 13 17:39:12 2008
@@ -296,6 +296,8 @@
     HADOOP-3096. Improves documentation about the Task Execution Environment in 
     the Map-Reduce tutorial. (Amareshwari Sriramadasu via ddas)
 
+    HADOOP-2984. Add forrest documentation for DistCp. (cdouglas)
+
   OPTIMIZATIONS
 
     HADOOP-3274. The default constructor of BytesWritable creates empty 

Modified: hadoop/core/trunk/docs/cluster_setup.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/cluster_setup.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/cluster_setup.html (original)
+++ hadoop/core/trunk/docs/cluster_setup.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Added: hadoop/core/trunk/docs/distcp.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/distcp.html?rev=667706&view=auto
==============================================================================
--- hadoop/core/trunk/docs/distcp.html (added)
+++ hadoop/core/trunk/docs/distcp.html Fri Jun 13 17:39:12 2008
@@ -0,0 +1,587 @@
+<!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>DistCp</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">Quickstart</a>
+</div>
+<div class="menuitem">
+<a href="cluster_setup.html">Cluster Setup</a>
+</div>
+<div class="menuitem">
+<a href="hdfs_design.html">HDFS Architecture</a>
+</div>
+<div class="menuitem">
+<a href="hdfs_user_guide.html">HDFS User Guide</a>
+</div>
+<div class="menuitem">
+<a href="hdfs_permissions_guide.html">HDFS Permissions Guide</a>
+</div>
+<div class="menuitem">
+<a href="hdfs_quota_admin_guide.html">HDFS Quotas Administrator Guide</a>
+</div>
+<div class="menuitem">
+<a href="hdfs_shell.html">FS Shell Guide</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">DistCp Guide</div>
+</div>
+<div class="menuitem">
+<a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
+</div>
+<div class="menuitem">
+<a href="native_libraries.html">Native Hadoop Libraries</a>
+</div>
+<div class="menuitem">
+<a href="streaming.html">Streaming</a>
+</div>
+<div class="menuitem">
+<a href="hadoop_archives.html">Hadoop Archives</a>
+</div>
+<div class="menuitem">
+<a href="hod.html">Hadoop On Demand</a>
+</div>
+<div class="menuitem">
+<a href="api/index.html">API Docs</a>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/hadoop/">Wiki</a>
+</div>
+<div class="menuitem">
+<a href="http://wiki.apache.org/hadoop/FAQ">FAQ</a>
+</div>
+<div class="menuitem">
+<a href="http://hadoop.apache.org/core/mailing_lists.html">Mailing Lists</a>
+</div>
+<div class="menuitem">
+<a href="releasenotes.html">Release Notes</a>
+</div>
+<div class="menuitem">
+<a href="changes.html">All Changes</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="distcp.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>DistCp</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Overview">Overview</a>
+</li>
+<li>
+<a href="#Usage">Usage</a>
+<ul class="minitoc">
+<li>
+<a href="#Basic">Basic</a>
+</li>
+<li>
+<a href="#options">Options</a>
+<ul class="minitoc">
+<li>
+<a href="#Option+Index">Option Index</a>
+</li>
+<li>
+<a href="#uo">Update and Overwrite</a>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>
+<a href="#etc">Appendix</a>
+<ul class="minitoc">
+<li>
+<a href="#Map+sizing">Map sizing</a>
+</li>
+<li>
+<a href="#cpver">Copying between versions of HDFS</a>
+</li>
+<li>
+<a href="#Map%2FReduce+and+other+side-effects">Map/Reduce and other side-effects</a>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+
+    
+<a name="N1000D"></a><a name="Overview"></a>
+<h2 class="h3">Overview</h2>
+<div class="section">
+<p>DistCp (distributed copy) is a tool used for large inter/intra-cluster
+      copying. It uses map/reduce to effect its distribution, error
+      handling/recovery, and reporting. It expands a list of files and
+      directories into input to map tasks, each of which will copy a partition
+      of the files specified in the source list. Its map/reduce pedigree has
+      endowed it with some quirks in both its semantics and execution. The
+      purpose of this document is to offer guidance for common tasks and to
+      elucidate its model.</p>
+</div>
+
+    
+<a name="N10017"></a><a name="Usage"></a>
+<h2 class="h3">Usage</h2>
+<div class="section">
+<a name="N1001D"></a><a name="Basic"></a>
+<h3 class="h4">Basic</h3>
+<p>The most common invocation of DistCp is an inter-cluster copy:</p>
+<p>
+<span class="codefrag">bash$ hadoop distcp hdfs://nn1:8020/foo/bar \</span>
+<br>
+           
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn2:8020/bar/foo</span>
+</p>
+<p>This will expand the namespace under <span class="codefrag">/foo/bar</span> on nn1
+        into a temporary file, partition its contents among a set of map
+        tasks, and start a copy on each TaskTracker from nn1 to nn2. Note
+        that DistCp expects absolute paths.</p>
+<p>One can also specify multiple source directories on the command
+        line:</p>
+<p>
+<span class="codefrag">bash$ hadoop distcp hdfs://nn1:8020/foo/a \</span>
+<br>
+           
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn1:8020/foo/b \</span>
+<br>
+           
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn2:8020/bar/foo</span>
+</p>
+<p>Or, equivalently, from a file using the <span class="codefrag">-f</span> option:<br>
+        
+<span class="codefrag">bash$ hadoop distcp -f hdfs://nn1:8020/srclist \</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;hdfs://nn2:8020/bar/foo</span>
+<br>
+</p>
+<p>Where <span class="codefrag">srclist</span> contains<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
+</p>
+<p>When copying from multiple sources, DistCp will abort the copy with
+        an error message if two sources collide, but collisions at the
+        destination are resolved per the <a href="#options">options</a>
+        specified. By default, files already existing at the destination are
+        skipped (i.e. not replaced by the source file). A count of skipped
+        files is reported at the end of each job, but it may be inaccurate if a
+        copier failed for some subset of its files, but succeeded on a later
+        attempt (see <a href="#etc">Appendix</a>).</p>
+<p>It is important that each TaskTracker can reach and communicate with
+        both the source and destination filesystems. For hdfs, both the source
+        and destination must be running the same version of the protocol or use
+        a backwards-compatible protocol (see <a href="#cpver">Copying Between
+        Versions</a>).</p>
+<p>After a copy, it is recommended that one generates and cross-checks
+        a listing of the source and destination to verify that the copy was
+        truly successful. Since DistCp employs both map/reduce and the
+        FileSystem API, issues in or between any of the three could adversely
+        and silently affect the copy. Some have had success running with
+        <span class="codefrag">-update</span> enabled to perform a second pass, but users should
+        be acquainted with its semantics before attempting this.</p>
+<p>It's also worth noting that if another client is still writing to a
+        source file, the copy will likely fail. Attempting to overwrite a file
+        being written at the destination should also fail on HDFS. If a source
+        file is (re)moved before it is copied, the copy will fail with a
+        FileNotFoundException.</p>
+<a name="N1007E"></a><a name="options"></a>
+<h3 class="h4">Options</h3>
+<a name="N10084"></a><a name="Option+Index"></a>
+<h4>Option Index</h4>
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+          
+<tr>
+<th colspan="1" rowspan="1"> Flag </th><th colspan="1" rowspan="1"> Description </th><th colspan="1" rowspan="1"> Notes </th>
+</tr>
+
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-p[rbugp]</span></td>
+              <td colspan="1" rowspan="1">Preserve<br>
+                  &nbsp;&nbsp;r: replication number<br>
+                  &nbsp;&nbsp;b: block size<br>
+                  &nbsp;&nbsp;u: user<br>
+                  &nbsp;&nbsp;g: group<br>
+                  &nbsp;&nbsp;p: permission<br>
+</td>
+              <td colspan="1" rowspan="1">Modification times are not preserved. Also, when
+              <span class="codefrag">-update</span> is specified, status updates will
+              <strong>not</strong> be synchronized unless the file sizes
+              also differ (i.e. unless the file is re-created).
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-i</span></td>
+              <td colspan="1" rowspan="1">Ignore failures</td>
+              <td colspan="1" rowspan="1">As explained in the <a href="#etc">Appendix</a>, this option
+              will keep more accurate statistics about the copy than the
+              default case. It also preserves logs from failed copies, which
+              can be valuable for debugging. Finally, a failing map will not
+              cause the job to fail before all splits are attempted.
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-log &lt;logdir&gt;</span></td>
+              <td colspan="1" rowspan="1">Write logs to &lt;logdir&gt;</td>
+              <td colspan="1" rowspan="1">DistCp keeps logs of each file it attempts to copy as map
+              output. If a map fails, the log output will not be retained if
+              it is re-executed.
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-m &lt;num_maps&gt;</span></td>
+              <td colspan="1" rowspan="1">Maximum number of simultaneous copies</td>
+              <td colspan="1" rowspan="1">Specify the number of maps to copy data. Note that more maps
+              may not necessarily improve throughput.
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-overwrite</span></td>
+              <td colspan="1" rowspan="1">Overwrite destination</td>
+              <td colspan="1" rowspan="1">If a map fails and <span class="codefrag">-i</span> is not specified, all the
+              files in the split, not only those that failed, will be recopied.
+              As discussed in the <a href="#uo">following</a>, it also changes
+              the semantics for generating destination paths, so users should
+              use this carefully.
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-update</span></td>
+              <td colspan="1" rowspan="1">Overwrite if src size different from dst size</td>
+              <td colspan="1" rowspan="1">As noted in the preceding, this is not a "sync"
+              operation. The only criterion examined is the source and
+              destination file sizes; if they differ, the source file
+              replaces the destination file. As discussed in the
+              <a href="#uo">following</a>, it also changes the semantics for
+              generating destination paths, so users should use this carefully.
+              </td>
+</tr>
+          
+<tr>
+<td colspan="1" rowspan="1"><span class="codefrag">-f &lt;urilist_uri&gt;</span></td>
+              <td colspan="1" rowspan="1">Use list at &lt;urilist_uri&gt; as src list</td>
+              <td colspan="1" rowspan="1">This is equivalent to listing each source on the command
+              line. The <span class="codefrag">urilist_uri</span> list should be a fully
+              qualified URI.
+              </td>
+</tr>
+
+        
+</table>
+<a name="N10136"></a><a name="uo"></a>
+<h4>Update and Overwrite</h4>
+<p>It's worth giving some examples of <span class="codefrag">-update</span> and
+        <span class="codefrag">-overwrite</span>. Consider a copy from <span class="codefrag">/foo/a</span> and
+        <span class="codefrag">/foo/b</span> to <span class="codefrag">/bar/foo</span>, where the sources contain
+        the following:</p>
+<p>
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ab</span>
+</p>
+<p>If either <span class="codefrag">-update</span> or <span class="codefrag">-overwrite</span> is set,
+        then both sources will map an entry to <span class="codefrag">/bar/foo/ab</span> at the
+        destination. For both options, the contents of each source directory
+        are compared with the <strong>contents</strong> of the destination
+        directory. Rather than permit this conflict, DistCp will abort.</p>
+<p>In the default case, both <span class="codefrag">/bar/foo/a</span> and
+        <span class="codefrag">/bar/foo/b</span> will be created and neither will collide.</p>
+<p>Now consider a legal copy using <span class="codefrag">-update</span>:<br>
+        
+<span class="codefrag">distcp -update hdfs://nn1:8020/foo/a \</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              hdfs://nn1:8020/foo/b \</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              hdfs://nn2:8020/bar</span>
+</p>
+<p>With sources/sizes:</p>
+<p>
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba 64</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/bb 32</span>
+</p>
+<p>And destination/sizes:</p>
+<p>
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 64</span>
+</p>
+<p>Will effect:</p>
+<p>
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ab 32</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 64</span>
+<br>
+        
+<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 32</span>
+</p>
+<p>Only <span class="codefrag">aa</span> is not overwritten on nn2. If
+        <span class="codefrag">-overwrite</span> were specified, all elements would be
+        overwritten.</p>
+</div> <!-- Usage -->
+
+    
+<a name="N101E7"></a><a name="etc"></a>
+<h2 class="h3">Appendix</h2>
+<div class="section">
+<a name="N101ED"></a><a name="Map+sizing"></a>
+<h3 class="h4">Map sizing</h3>
+<p>DistCp makes a faint attempt to size each map comparably so that
+          each copies roughly the same number of bytes. Note that files are the
+          finest level of granularity, so increasing the number of simultaneous
+          copiers (i.e. maps) may not always increase the number of
+          simultaneous copies nor the overall throughput.</p>
+<p>If <span class="codefrag">-m</span> is not specified, DistCp will attempt to
+          schedule work for <span class="codefrag">min(total_bytes / bytes.per.map, 20 *
+          num_task_trackers)</span> where <span class="codefrag">bytes.per.map</span> defaults
+          to 256MB.</p>
+<p>Tuning the number of maps to the size of the source and
+          destination clusters, the size of the copy, and the available
+          bandwidth is recommended for long-running and regularly run jobs.</p>
+<a name="N10206"></a><a name="cpver"></a>
+<h3 class="h4">Copying between versions of HDFS</h3>
+<p>For copying between two different versions of Hadoop, one will
+        usually use HftpFileSystem. This is a read-only FileSystem, so DistCp
+        must be run on the destination cluster (more specifically, on
+        TaskTrackers that can write to the destination cluster). Each source is
+        specified as <span class="codefrag">hftp://&lt;dfs.http.address&gt;/&lt;path&gt;</span>
+        (the default <span class="codefrag">dfs.http.address</span> is
+        &lt;namenode&gt;:50070).</p>
+<a name="N10216"></a><a name="Map%2FReduce+and+other+side-effects"></a>
+<h3 class="h4">Map/Reduce and other side-effects</h3>
+<p>As has been mentioned in the preceding, should a map fail to copy
+        one of its inputs, there will be several side-effects.</p>
+<ul>
+
+          
+<li>Unless <span class="codefrag">-i</span> is specified, the logs generated by that
+          task attempt will be replaced by the previous attempt.</li>
+
+          
+<li>Unless <span class="codefrag">-overwrite</span> is specified, files successfully
+          copied by a previous map on a re-execution will be marked as
+          "skipped".</li>
+
+          
+<li>If a map fails <span class="codefrag">mapred.map.max.attempts</span> times, the
+          remaining map tasks will be killed (unless <span class="codefrag">-i</span> is
+          set).</li>
+
+          
+<li>If <span class="codefrag">mapred.speculative.execution</span> is set set
+          <span class="codefrag">final</span> and <span class="codefrag">true</span>, the result of the copy is
+          undefined.</li>
+
+        
+</ul>
+</div> <!-- Appendix -->
+
+  
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: hadoop/core/trunk/docs/distcp.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/distcp.pdf?rev=667706&view=auto
==============================================================================
--- hadoop/core/trunk/docs/distcp.pdf (added)
+++ hadoop/core/trunk/docs/distcp.pdf Fri Jun 13 17:39:12 2008
@@ -0,0 +1,560 @@
+%PDF-1.3
+%ª«¬­
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 651 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb!$E9lldX&;KZO$6AX[)gr)9j.r8?B0)G=jHT:%5hO;j5`cVfrUiTeK:M0C?SW*TR$DlLTA>ja0&kf0aUmQa;4ImDIAHs6X+2>JIL)CS29@R,)56gAH44^!A$>29qMF48D6uW?(OZi=PQ8R2*tfsI)a-P)<4JR;.Ne-.WjK@EB%Tm%Je.T#R(<_1!Nu:tM!n'qH$A5]pYD<Vh?preU$dbV`iJ3]3&#QMOA7Sf#'<@$VjT^:#Eu7]-NG3lC"-Ya.IP9>&-7%%%7dHn)2JCp7:M/H;inK<,f6HZgJRRQKP7#B>47L*pV3bG;3g;1gof(!^ol+%;W1kL+En61;W5@a<F+oG.t4*2\UUY_?Y>3^0jSILLZZNMOLO]Y/ZHeQBo9Yo\N4@-%Q/\:3i>?+@]*npo=qHn599/5s&n*Yf&aEg2L<ie#6-c"DJtj8+-A(?"2X]"Qd[s6a6et@UT3d(i;'kD^\je3f@2lWP;;`[m92H_68Et_o3A3eK:50*!</Sh9,tTdF$qqq&?J.)+PhOa5QtmZb(K0!_Ta0Ea:j;a.PAC(K*VL!.F>_%KI;DL=KS^#<%am'',>&b.)p#/ijBheX#`h#qnC5?2JKghAbB5=M/0!HKl&`Cd666/[PmN#TedP5rrH0Zj9G~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+16 0 R
+18 0 R
+20 0 R
+22 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 559.666 157.316 547.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 541.466 139.988 529.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 523.266 150.164 511.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 505.066 161.504 493.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 486.866 157.328 474.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+18 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 468.666 177.164 456.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 19 0 R
+/H /I
+>>
+endobj
+20 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 450.466 297.488 438.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+22 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 432.266 291.116 420.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 23 0 R
+/H /I
+>>
+endobj
+24 0 obj
+<< /Length 2083 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm<968iG&AII3nBceN;c=t:p+8k*9R:C+7\(Uc*Zu)[:m2"aOI#k6]+c]&5nS,ac$75QOMj>srUp9)h5o2r'?:Vhce4O5ce5FJa+HV6aZOe`LOnarZ*UF#^MeMof"!$QnGMFt'9c4^*H%EtSBW^fT/Wf(Y]JIq@5[H]68sm6-Tlj-QR4>),]gDphcF_$V30f%;5pOVphlIXqL7G(He3#'%lXYSOaPo-XO*#LdCq`ul8;Z>2q:,S+Y(1j'c'XRW>?;74,1[2*Kt:60BlbKoa4`sDVj^k0HWADM4+E"Sb,gH9MX0G>t\5j3Q%`ZhlJA3Nb%\j\Tc&GMrmO:7nW-pSi0"@<e?oJ5ho\mVsm;3,\r,#m/F6P(;=.1[fTKoI#YGQod4$7M'1sr;\hG%%[M9)Er6)/5i>YsGKYdCU?Db\Ns\6Ao=\I=K+<6g?QFAkR;lPT];5M[!<9@ODU0q??GIu^h/pM)[4LJea6_lH7A(:,`4Qss@"_8mW*JhnAHgs_`\:E>(=j2Z?l7=#I(DJLUde7roNXS[AI#YQfXHAsS@\6DJ\c?FC>*bl[ulA-Zi$0jaR]j1WU47I'XIrKQ]"2kIE`\#DWiZ!R=MY4.CSPf5oYcb;,VF3f)nGWglA+M]fU8bih]KbW]gZ1*A15ZW("NPGLD5h];_2`JbI0`RNV,!<-5'gQF\.5Yo<l-<7caZFi,U]8inF0()2L+k_<Mj;M_s,>H2pc<>hYg@$I3^7\K<fH:aKS)/1cS1al3/eQkX7e+H;ne=P1]^19&?6OraGjdpIAN_X2k4bAi9Z@,BrrW`uGHW-(C6F;&%FFbF6pI2(LfB]=(mifL'\eJVeV,Dg4n1^U]#mQ-;!MnXFk?/'.Kn+\>d+N:Uk'l<E)KQ=H=]*4G@OZ+&XdNoQcDSB*"q[o8OT["i/2dsaY$8"<K#CCHqf(Ts7U$PCdfleGG>a:/`),l!k?7!_a/ltU$)&0HjCCk8J40oBD[L%
 2/K1<b\'3L*/^XiVlG1V4iFWJ9DO<S0"6)8&k)Yo$V%g<@;@FtXc!<X]aF'Q#^C"6A\iiLUc;PBY#*T/oDlZ:V@f\1Kp1d`GSEV$ke=\rb:30SfjMKQa&Q3aYFhFiZ[-bhP8(a:0:p#\<_.^kqXX?DjEr.rJ'DcH$$%b\qe7)!q>m)<3&\bLm"WjD`-](>Z(fR#>"j'd'M:eUR8q8(W;*@esBAkR5=,Kr?#$u$_F&u\QSH.]6q$td^p#FS)'0'fVC[W+!ZGg+kI%9cp@=r8@5'm*UqZr#[c(;]D9O<A'LJ]Bkbro]LXa9mjFbAAMU"WE$W,'QRe:h2%[m3YD5n%G(D'[NfZm<U@^j(tO/caAU)AUsKV+G6&+i:p#?9c]+9t(0_LKRcsmD1n*i+b86RmN_ha3A[$/=/u6T+OesmN=-0^kPf'06$+1p>,)CJi(>=_<+_5'HDm@UEGic$d#'64Q/Y*Mu0(u$cfMqoZ6jgK<lJN/X!!hR=D#>I2l<uU7YDFkGD,9*1Y@8TKDP,46I$4Q@eTDbJ]7TpeE21i^j=Mr-[MB"8U,L'Tu.f9#4+,N5Cj$G,2;eUBMhFHfbF#]C,g6HK8q$EIYLW/jh6JU;LDS.i9Y]kM$f2l;Mn5E'KA*c4A2ag`h/b0ZX%015T;(4Tc-(bi<gSrn*)E_ZKqjB?k,hMQJH`nCbOQ#b8#:(In#/Qfc[/Bq#pP&[hrc_k9\B@ka_:^[3An]N%f,eiM_-kMIM[2Et36kDU-XVnk)E=&J#17_<*K8!4p$hR7$?*4[==i;7bXX5Vi-gaG<Mpo<C=$UFd,!W"VVIpU4aZO6@#OeN4<$./55UZK4B%nE(K2?rD""i"O92^W*MDD7s?@BAi8Sf?H?gW4V^F>[bAd8M89c>[-@qInq#2]mU7pjqapbe.c3iS9Fe&&+C?8Mj^;5hh?SbD5Y1q;>V;%q)OGS.)bMPP!b0*X@JM/;]4)6]cT-2thN)"H6(fMPq
 'W<#.u!)M4[^.-_g0>02!c@iSm0)43r=?a#:K-$hH)H]3kAE2LY@c_Bb9;ct-5]SFp8d.;D6Zu$ca`l1fa6>NHcHocG3'6aBV7ubM]~>
+endstream
+endobj
+25 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 24 0 R
+/Annots 26 0 R
+>>
+endobj
+26 0 obj
+[
+27 0 R
+28 0 R
+]
+endobj
+27 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 438.288 200.879 473.628 188.879 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+28 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 465.252 161.279 512.58 149.279 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+29 0 obj
+<< /Length 2800 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+GatU6D0+Gi')q<+_...@qidM>E6gOV!c<,kcc=%/,=-YZ3594>bIiApbrOaL/0a]VFn1l)g7,5,HSSXSP+2,L5U02asd1h?aM1Ptqj@fFr#k@1e@_"B\4>RMIWhhaQi>,AkuTgr*2T^4D1,nWbmD%N/_N@G'`33#io4d<m72M;f&[^8OrndnhjF&LL=``5:?Aur7lln*#+:/l^o`@!:>O%a4)e$h\9(\dSe0JR,?Oi*#Wf[bZ+Z[i*t"[bjW@-\C<EL\c);*F"B6Y32fT.2`\L?h2
 bRs!FNl9.%CRC\XS1A8@[EgA)@-7'),fc>s&c;5"Igj5\:>Zt?ON7BZbZ!-+PV,GmMq`GtNOLB&b<[N...@kA>C>nA;WZCbBGIu<.ZrT9R'`sple,GVmWcV1;AY_%u)g7p7?A6
 aPc[)Y8ma[tVlQ@de;$Efn6btL^[<KupdZ80)Na9P?SX84@Kmtu4WsPZSVLmD?W^ciebQo^QhloFKlY#+/^tE-%Q]#^Y3&c3iQn4UgBYU/FD=@&)3.h^[\?_o!_T(=cSi4V&nFlT[.WWD.AC^C%:3siO[6ou#(]EWedSd7=0!06lK1M.UM;tHW2,u_8qfP8b3HrgHa3DdQlM,oUdIEoA'I!(h9GC6#dUYms9E_6^H[Vf94C9;32MJF),7cPY5c_9O\QX#j%d=IC4W01G@7_lb",i5mDWKduH2*Y8%G<E,3X6:-$:i5h$k-B1%]hW40QsN?=n[H++K?[LO1rLd[Ol!QPB&+/]&>o#1jl@($/>LT*rT^MZ9B7CTkkfXf1(-cL%bj26GOV8Sr\==rH<idAU*n9VS.]'XE)V+GC.oOd$HDjPdW5,iC&;Ps/l$o=7>V&)7Nu%Q0hs01Md/Y!5Je>pU9fl==('Ff5de'$F9?-pdPhMCI.[F;-Rea$>f__TBUK?;BtV?KW)'DXWY43/)Q/EIr,<ho5Ia)(e+7KY3]8K,i*r93co\"M0:eLlhc>%LQ_-2DHM^_g8YG4eIeWQ\JIeGKAK]g2==SGQC\iBD:oKp&qsQ%)V#koqNC=D@pd48\/A;RT$L*0$7<L^%+dnfJD9qRf*J&ZXioCtZ,HgsU&U.g[R,'3MSN+33nsM[kluX4E)?M$*-qi4U1)ss[k9FPHJ1/"-Nn8T.m%"O"5ensYgSj;bbej),BECtnSPggQ5.Qm,EBoP$!E)8%m6sib,[r)h%(C;pQ7*=-nO3-b(Xk^Tbr@X$RNE^/H~>
+endstream
+endobj
+30 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 29 0 R
+/Annots 31 0 R
+>>
+endobj
+31 0 obj
+[
+32 0 R
+33 0 R
+34 0 R
+]
+endobj
+32 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 419.256 647.6 505.584 635.6 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+33 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 90.0 634.4 132.66 622.4 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 21 0 R
+/H /I
+>>
+endobj
+34 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 481.77 297.375 523.46 287.375 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+35 0 obj
+<< /Length 2435 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gatm>D/\/e&H;*)+nWrU+BHDs]lh5C[TeXufXeKYVemhmS$E@AOt0-rZX5r^Pp`#`XCVk+R)U08ptX\H-TZ0(X.M>OY:F-(jT"tTd'4V7o/uh@h<Osm`P1a:fZKVi?2_$SoD^<PYPL+/mRhJ#^*4Iri[D1=X,B&_i5gCGks>D.S&\"_+KVB<>A[LL@ao:5(<9sRI,dmN53>R`<(rXMoho;jYY2YW9@9G+N_:.Cp/5Dk\4bY%QbkNph7ImP6<.oAig!H7g6"V@+sF'&?"+I`D,/ZS2`Y*KDerJjCi@(qrjF`"R&U-i>"e7@U03k.=rFgnl;$cYo6GGcGjS-OD1jA)@HntM&0g\(IY6#Do[6oi:*k)T6X$(qS>*@bd=dc.$YR8d/oUd]q8ksFkq$0)!\[5i^j_9WnP`SaLAdc39nKfb\QWWcMk7A4bkdu,9-JLMMC<%=.?rgE4*)`Bcl4HD#5[!kH6/C?_FVqJW`Hq9mS@K(j7/="WAq1tm(<!l+p55HMb7al6q-)Gm-LJkZISNTXC0D3VuW-hS=+Sfl/]8X)7jmHJ>k@-S#'rAKSXZ?4;mm8_m$$tIQHZF_n`H<.hB[A=cChc+:RQiR&.EO\=)Q@L:GD6j>cc(I_C-r9ddZ.n6A1WKI6fD+*1bmEKXN-d4DC^o?_"sW,rfO0q*_KI8D?b'u<;Se#;2-3_iRGTUVd3B0tQ0KmGAfZq:I?h#lYn"rsESEPrMU!E$FH@5R'toncDb0QVLmIi1Nj"?&^OGqLq20sQSuX0,E#/SFrbi+/"0:iFPk"q:!#P;=(t]q,_Q3T7sE#R=sU11:#RN,ih?C@/:JSnrls<BbGJOtG<>B6E7j"1!Cc%^tP0<sle;AeThI]T!IZ3EE1_+5^9Q.Q`YdV./9@:)9*jBjSPL/B@Gr[2uGG:!0l4q8#t&mWMF(j"*d-8"Lc*UMq^N%4H4H4"k!G70^boA!A&2Gsj_P`dQPLZ9kcoPSSWO!/r_
 \TFWSb\YP>D;f,lpq@"7g9rEK$MPC1>6\e=Nne$(Wh04\uN`he:#?iftY\82WcJgTNT#R8aJ1T9-aN2Rg6Vm30WLX[2HEGjnVMIJ6&:M6>m7f+FUmofJ;4LUWje+HX8s]Q8gUs,'A?lnI3eu*b081MdH79*t6KC54i;^TYbN"uO/ChkS[G_:;'ukM'Sk8XMd'k!1fZO=QgEN6r\@XSj1J'^i!>q'Q_sYV>'>:J[+5&0s?BWpB:)O8aJ^M#A`J.OSKm64600g15f1_U/TJ::Q3\,@OSi;GLF'%I/52]92/NWEDE+!,>>abua.1XVFHj=Vi7iC?S#c@jt[`%Q#;C/@<hHV>SXXCe7DF_Rn\S![QM(4qI-T)*uPA&!Y,\Bh`S*_?R#@qA6R%Bg#`eL.X#AMX0:NZmhrVEP!U"_kY2DmDb#*cVU2OKNlTKYq:V?q=^7`GXbM5oRIKRqUjA>$N=_6fi<b1&+>oH);=%AqB5<L6c\'9L8;\VM6g4l[gH\G#UIOOm)`N]:Nma.lQ9TmiU`lPNknQ8qaN.)*d['DIRrTUKZUcT46m"tcB5CM]SmE.*JO=()9"(qeI^lpY;_=/1OZZ67*OMl\We2Ei[J_d'Bo(:*A6W6JkT<lG(9c/8m/^1UeGrX^CKYQf"d@A(W3HQ_/rg)VhnR<g\2U!R(g3iOV5D0ns'N_<pK2bk(,>6roQ4Yk@h8MtK.iB#Jc82Dg@9nOR_Xp$YNKb*HV<iUFE/\dTK;Vt`XO$8'+[sS.&96RQ`"]bQ]JD+<@1m[5k.t=Q.l>KI:5.;%\h7B.sR`1&]42b`LhmXUGFPk%],.e73NOsE&Lef(SLprK%(Z,O1oJ+OIUKS`66ehC)[E)+Yh.k"m[l6.g-iNcPFeCVHfL%P+L=V.+Fs`7VP2XruZth7!6RELjF@5niXN;6#r(B`qYI@XapqHPZTT,=bgKj2*X6*Q!eAimG;Nu?:mc#e0M^Fr]Z@;=?B,V"S?%p
 Dm\2:O_0S:B^qmoi.c%[sU8FiED2*9P@YA?p9o!.THHFG"5O":OhehU*hL_XJ-LjiMqc'W8Xmt]7k;g>"9IP;7Kgj*tra5YY*?(.KhJV0LZN&3C;fl^3[/fN-%J-Rm!>GEO.h92;9*)Z;jKssoR#1'A"lXCKrX`AQKI1X@)WTHsfV%YIkQ;7[?aN5NL_]@kW"A&soFgZ&6;!:O]X;SU(6)pHhd,Z<F"Y4Hq8IA@=RmHJU8Fc+o\QQ>lra"Oa0W%8KL^94t[K;p.3bZL7%^CE7*>&c#Dh!p5o^-r!Lj3SO%[-bR]5><&L4<T.Fm+bNM+n%Lc/O<3mf%QTB\KS,LVAPG)[bBds564%FJ$/&8J0'I/+d(>L([qED"UgADU&b_0FRi5?)1NREI;U1l#5J*EWQ=.:K^pb7QL8)>umhLrGL[R]\ou1KAe@ono=)+n5gb4!m#"KlM~>
+endstream
+endobj
+36 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 35 0 R
+/Annots 37 0 R
+>>
+endobj
+37 0 obj
+[
+38 0 R
+40 0 R
+]
+endobj
+38 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 421.74 540.75 460.64 530.75 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+40 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 483.43 419.25 522.33 409.25 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 39 0 R
+/H /I
+>>
+endobj
+41 0 obj
+<< /Length 1356 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gau1.h/D%+&A[3%=6M@B&t5GePdg906O.Gn<Wd...@T1H63a>BHi9k4LHs6eq/&Cik'09saP5\L^DE(h&<B1`HDmji[fp&k>G24L,.N;j"_oJdInfB,,Mb@Bs^(bMX^U2W13t6Z"eEgLZk(fBjP26B7BAO/^)[_8CD'&<jB\lkN_S5a#!Z(3B;rP#VC.p6$3-4>>T9pr$9N)1'7q,cpNtqmFdiStFEiF($i2*",F5#p'?0Wjjpt/E._d=*\s4,fskCh@`s<U^&O!OkcU^Et;HQ,OpG"&hKg955sU_aZ@VhI<u&k9`I7N)TD^o-^A-^k7(uh6XQZcKOc:]O(\92fh[:^j]n\tS><ob`OFM+a@cgsGNBLX&U2!F/Q#Z%2Pg2LRmWB`VR6LZ_6`YDZsrL1\a.Q5fN:u%o##-Lp;Z.`>4S=*cnDc6?KYIo;p[?M-^+qOF1^d+[4f<=P'G_
 n9#,iXBV=s?9n1AM&L?Lh@4WB$).<)9f=FZIIng?R#9P/7i"Lk.d75B1Qo"UVPK[[f*;?^s7[!rlrC):geJs^[1%EoZ`]dh+I?RsdYs+;UKUF;6dbcYFe6a,e#9?d@ne*4<12qFpm+3b#iumFNA@-t1%eGZP$IFd?5`lor\g^(FLWeX_Rqf^k6:GiQU-W=)kn8\,i?:%$;-;PmJTX4ig3+o?TZsP]Nh!G<1\'aj3Julho`qnhH,tH;U;<B#)^BS5&k3Iu>_!uc#_Cu3"=?JB-%i3VVK6VFc*kY:UV9*jK%LgW=PD;?(g_s9;f)MdouAQJ%]TPJSu[:-g55VN2O*C/k\[e:X]sV/eL@f^IK5MZc)(~>
+endstream
+endobj
+42 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 41 0 R
+>>
+endobj
+43 0 obj
+<< /Length 2031 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,>Ar7S'Roe[&GhV$0eH8sU+"Amee[JRXkqMh'XU9_>]cH+`V"]YNb$6mPU.UnJcqgb_fP_#G7O:`^%f*Dr3NVd4oG;l#YebHT'*psa/tu#NYrJeoSeqPgVn)hGE3)51aI>ClHV7<$NF8t(1ne&_N/8u-!a,*dkTFQn`PmB.=Z%_BlhQo<i'#,p?R+X5As>T9@C"naVBt<#H%@J:*a*<93,dh3Sp-CM$+Lk^lrd:qiYMj_FgLs\,BO!pWk%A9$X6Rp&f/])=&r.(t^!O\erY:/O`hhMIeoRO@)lO#[X5ARi=XQ$;S_N\Ts%`-PYY^H-DEr439!#V?/Yfl\Ko;,P7/YBbr$QWglnR5Oag^$3"k2=8P?^.5IpYFG\["s4l;:\dL0Qm'^,q8]$SS'$KnkiEf/Z!O7Cm6;GI"(-E3k_.*V8%mm;j7DD"nll&f[VZf+J+ahDq^uHn1TfM8s4T][F_F\D-d"A&&FOO0ND*WkcanM[Hi%WJn%U4pHedX2DFL((]/9j_dD7@2(2>cR/qF<frGK&YAG?(s4*me-OF#)*#d#4gf4!&XgB,qCOBR)C'cKK=9QafEAR-tkW=,r$P%sf#/=e`(np"_#M?.\P'IU-O:7.Cs4X@mm[+5.<)r6*+kd'r+:)5/q2idMIA2i<PCO_:V3P=d;qhsLGB4;&FMl,a!?!Rn)]Ni%Oo0TiRkY(eOp5)NG_&=]@iPs!4<P\2_3#;pR2s#f$hb::ssUY/K7IGG#=7&M0S0E08+P$Dtg)j[Vdm-M"=&DNplO)72qEPDbY2=4VNNgq='^kNI7,0+3kl,2>d<rI0eG"n%MNo+trhgrQ&9j9F*#q60dlYPu0%TrA%[H`PJ)N3D]C,f-fp4gP3?6DAk).l*m3\+?!QT3q?B^_ji.dg[opiZ`.VPE8;pb;A_DQXKe3r#+O0X,eiB38lO@q%tGnpaj%q.%SqE.of=X+Rr$`UcBaQ_W*o!7ABKf58E_l9O3
 d.piC4Y?M4')S[JN"HG/jiFubYYiZqY]L4(:O[TKp>FiRJ-sJd9:$dFtQj/qJ)\\_Qb14rO3<5^YX]DXcSKnH:$Gtf4jAN]p]e5[5]UA)&!@@a7]Zi,K:$\4PlKjjI'!"*'BZc8?e-lW5V(otsB/#WaH-G0YE_Y"AS+t<NRU_b=\m`Wn2G2V'<igb*a^qd(jPW'#Wt[9qEhJ<RdX&+-bV:Q?Tl[bq38W-*bRO[eKYc?e\&d_7PIM)WM*W\-=CT(%WHp+gc0uQ@&_I%+Y7cdPXdc(t">+K';JMqs?pW#'6>;WG9ZViE4jF):mh2g^M9`,gO<e`knaT$?!3mjPmfp`&>9t4\h756Zi-CW-3j\h,&e+$0.^b,r3P*^<b\?Su@La]')2ui/>-a?>O1+M&#4YP--JK3"`#Mp@_D?95F;@JT,V5Bb1<a\V9?2a,Bmg,C4p^O6f'7`IM7,jck9\N1f?[5:Q<Miu^p]4r1E,&mXs>)^k28=PXJ-!egJurIdG.\K_Mp&@3iH5!j0$DA;e.%`.\X(qn>OdiiA<#^<o+?+>5.q]hM\,dnVbH:$[4u7]_%YK3^3"%,BLhDZNu)\e8k]i?oXk@EIEOnh]JX_lWf(K!D%<WN"RS3]XO+fAO<$e28ea3Q#ioA8L]A8q8+]W+G!Iu\Z$W%#9[UY[!p:_Vnl,X.%un,=1F_q!!,>MJnG+8_XpMV&>l!"SC_+R1l4-.FcjQ>8r3dJ&H8TV9Prc!cPj;T=A43/n9dPcrMU`1UrhD)"1V2;AX_"Y;N!nNh@9Tm7$Z:B[lH(V?mmgjA(_9N:V21eaf@YgFpI?>"qG5KGN\g\C#%a()ULRNXnCL.0Q"^_.FFmW4P3qcqH:!#.bl/k14?ZT[:<H)6InNZXrHB%lf2E^$u@-k/Ui'CYAE+kn,"C&4_ibsa?7X.a3l46oc4isN4'k/U$!>F",=6OE..[;`W"6&cOZI"V68@P.#c(BC4-TiH1A=nM[<
 R:bBN7(IX42m\]Z.JbmfFNYqqH2(QE<hem.e:Tas-$mQ\NLR<S~>
+endstream
+endobj
+44 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 43 0 R
+>>
+endobj
+46 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\117\0\166\0\145\0\162\0\166\0\151\0\145\0\167)
+ /Parent 45 0 R
+ /Next 47 0 R
+ /A 9 0 R
+>> endobj
+47 0 obj
+<<
+ /Title (\376\377\0\62\0\40\0\125\0\163\0\141\0\147\0\145)
+ /Parent 45 0 R
+ /First 48 0 R
+ /Last 49 0 R
+ /Prev 46 0 R
+ /Next 53 0 R
+ /Count -4
+ /A 11 0 R
+>> endobj
+48 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\61\0\40\0\102\0\141\0\163\0\151\0\143)
+ /Parent 47 0 R
+ /Next 49 0 R
+ /A 13 0 R
+>> endobj
+49 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\62\0\40\0\117\0\160\0\164\0\151\0\157\0\156\0\163)
+ /Parent 47 0 R
+ /First 51 0 R
+ /Last 52 0 R
+ /Prev 48 0 R
+ /Count -2
+ /A 15 0 R
+>> endobj
+51 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\62\0\56\0\61\0\40\0\117\0\160\0\164\0\151\0\157\0\156\0\40\0\111\0\156\0\144\0\145\0\170)
+ /Parent 49 0 R
+ /Next 52 0 R
+ /A 50 0 R
+>> endobj
+52 0 obj
+<<
+ /Title (\376\377\0\62\0\56\0\62\0\56\0\62\0\40\0\125\0\160\0\144\0\141\0\164\0\145\0\40\0\141\0\156\0\144\0\40\0\117\0\166\0\145\0\162\0\167\0\162\0\151\0\164\0\145)
+ /Parent 49 0 R
+ /Prev 51 0 R
+ /A 39 0 R
+>> endobj
+53 0 obj
+<<
+ /Title (\376\377\0\63\0\40\0\101\0\160\0\160\0\145\0\156\0\144\0\151\0\170)
+ /Parent 45 0 R
+ /First 54 0 R
+ /Last 56 0 R
+ /Prev 47 0 R
+ /Count -3
+ /A 17 0 R
+>> endobj
+54 0 obj
+<<
+ /Title (\376\377\0\63\0\56\0\61\0\40\0\115\0\141\0\160\0\40\0\163\0\151\0\172\0\151\0\156\0\147)
+ /Parent 53 0 R
+ /Next 55 0 R
+ /A 19 0 R
+>> endobj
+55 0 obj
+<<
+ /Title (\376\377\0\63\0\56\0\62\0\40\0\103\0\157\0\160\0\171\0\151\0\156\0\147\0\40\0\142\0\145\0\164\0\167\0\145\0\145\0\156\0\40\0\166\0\145\0\162\0\163\0\151\0\157\0\156\0\163\0\40\0\157\0\146\0\40\0\110\0\104\0\106\0\123)
+ /Parent 53 0 R
+ /Prev 54 0 R
+ /Next 56 0 R
+ /A 21 0 R
+>> endobj
+56 0 obj
+<<
+ /Title (\376\377\0\63\0\56\0\63\0\40\0\115\0\141\0\160\0\57\0\122\0\145\0\144\0\165\0\143\0\145\0\40\0\141\0\156\0\144\0\40\0\157\0\164\0\150\0\145\0\162\0\40\0\163\0\151\0\144\0\145\0\55\0\145\0\146\0\146\0\145\0\143\0\164\0\163)
+ /Parent 53 0 R
+ /Prev 55 0 R
+ /A 23 0 R
+>> endobj
+57 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+58 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+59 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+60 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F9
+/BaseFont /Courier
+/Encoding /WinAnsiEncoding >>
+endobj
+61 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica-Oblique
+/Encoding /WinAnsiEncoding >>
+endobj
+62 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 6
+/Kids [6 0 R 25 0 R 30 0 R 36 0 R 42 0 R 44 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 45 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<< 
+/Font << /F3 57 0 R /F5 58 0 R /F1 59 0 R /F9 60 0 R /F2 61 0 R /F7 62 0 R >> 
+/ProcSet [ /PDF /ImageC /Text ] >> 
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [25 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [25 0 R /XYZ 85.0 540.666 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [25 0 R /XYZ 85.0 509.532 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [30 0 R /XYZ 85.0 463.4 null]
+>>
+endobj
+17 0 obj
+<<
+/S /GoTo
+/D [42 0 R /XYZ 85.0 200.2 null]
+>>
+endobj
+19 0 obj
+<<
+/S /GoTo
+/D [42 0 R /XYZ 85.0 169.066 null]
+>>
+endobj
+21 0 obj
+<<
+/S /GoTo
+/D [44 0 R /XYZ 85.0 529.4 null]
+>>
+endobj
+23 0 obj
+<<
+/S /GoTo
+/D [44 0 R /XYZ 85.0 425.347 null]
+>>
+endobj
+39 0 obj
+<<
+/S /GoTo
+/D [36 0 R /XYZ 85.0 299.0 null]
+>>
+endobj
+45 0 obj
+<<
+ /First 46 0 R
+ /Last 53 0 R
+>> endobj
+50 0 obj
+<<
+/S /GoTo
+/D [30 0 R /XYZ 85.0 433.347 null]
+>>
+endobj
+xref
+0 63
+0000000000 65535 f 
+0000017561 00000 n 
+0000017654 00000 n 
+0000017746 00000 n 
+0000000015 00000 n 
+0000000071 00000 n 
+0000000813 00000 n 
+0000000933 00000 n 
+0000001007 00000 n 
+0000017880 00000 n 
+0000001142 00000 n 
+0000017943 00000 n 
+0000001279 00000 n 
+0000018009 00000 n 
+0000001416 00000 n 
+0000018075 00000 n 
+0000001553 00000 n 
+0000018139 00000 n 
+0000001690 00000 n 
+0000018203 00000 n 
+0000001827 00000 n 
+0000018269 00000 n 
+0000001964 00000 n 
+0000018333 00000 n 
+0000002101 00000 n 
+0000004277 00000 n 
+0000004400 00000 n 
+0000004434 00000 n 
+0000004573 00000 n 
+0000004711 00000 n 
+0000007604 00000 n 
+0000007727 00000 n 
+0000007768 00000 n 
+0000007903 00000 n 
+0000008034 00000 n 
+0000008171 00000 n 
+0000010699 00000 n 
+0000010822 00000 n 
+0000010856 00000 n 
+0000018399 00000 n 
+0000010991 00000 n 
+0000011126 00000 n 
+0000012575 00000 n 
+0000012683 00000 n 
+0000014807 00000 n 
+0000018463 00000 n 
+0000014915 00000 n 
+0000015054 00000 n 
+0000015230 00000 n 
+0000015362 00000 n 
+0000018514 00000 n 
+0000015546 00000 n 
+0000015729 00000 n 
+0000015959 00000 n 
+0000016139 00000 n 
+0000016300 00000 n 
+0000016604 00000 n 
+0000016899 00000 n 
+0000017012 00000 n 
+0000017122 00000 n 
+0000017230 00000 n 
+0000017336 00000 n 
+0000017452 00000 n 
+trailer
+<<
+/Size 63
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+18580
+%%EOF

Modified: hadoop/core/trunk/docs/hadoop_archives.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hadoop_archives.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hadoop_archives.html (original)
+++ hadoop/core/trunk/docs/hadoop_archives.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hdfs_design.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_design.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_design.html (original)
+++ hadoop/core/trunk/docs/hdfs_design.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hdfs_permissions_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_permissions_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_permissions_guide.html (original)
+++ hadoop/core/trunk/docs/hdfs_permissions_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hdfs_quota_admin_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_quota_admin_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_quota_admin_guide.html (original)
+++ hadoop/core/trunk/docs/hdfs_quota_admin_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hdfs_shell.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_shell.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_shell.html (original)
+++ hadoop/core/trunk/docs/hdfs_shell.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <div class="menupagetitle">FS Shell Guide</div>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hdfs_user_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_user_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_user_guide.html (original)
+++ hadoop/core/trunk/docs/hdfs_user_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hod.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hod.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hod.html (original)
+++ hadoop/core/trunk/docs/hod.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hod_admin_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hod_admin_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hod_admin_guide.html (original)
+++ hadoop/core/trunk/docs/hod_admin_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hod_config_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hod_config_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hod_config_guide.html (original)
+++ hadoop/core/trunk/docs/hod_config_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/hod_user_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hod_user_guide.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hod_user_guide.html (original)
+++ hadoop/core/trunk/docs/hod_user_guide.html Fri Jun 13 17:39:12 2008
@@ -131,6 +131,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/index.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/index.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/index.html (original)
+++ hadoop/core/trunk/docs/index.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/linkmap.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/linkmap.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/linkmap.html (original)
+++ hadoop/core/trunk/docs/linkmap.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">
@@ -248,6 +251,12 @@
     
 <ul>
 <li>
+<a href="distcp.html">DistCp Guide</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>distcp</em>
+</li>
+</ul>
+    
+<ul>
+<li>
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>mapred</em>
 </li>
 </ul>

Modified: hadoop/core/trunk/docs/linkmap.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/linkmap.pdf?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/linkmap.pdf (original)
+++ hadoop/core/trunk/docs/linkmap.pdf Fri Jun 13 17:39:12 2008
@@ -5,10 +5,10 @@
 /Producer (FOP 0.20.5) >>
 endobj
 5 0 obj
-<< /Length 1110 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1138 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatn&?#uJp'Sc)T/%A8*U=D2AkpFYuGP[HOhW`"&Vk\h`1r8+#E2NYa"\Oc=<5jKRbTr>gcMQgE?@BIh0E/I.&Z,OtlcfM)s0;femM74&jqgI#5K5,TKI>/n)uY,l;HfY^(H>16PI("`]&/D$33X1U9BUT6);CL#V.HLXoB<r&rO5X9&].T%P@JS@32BSm?)Y1B_>5NlDHi(E-N`&-P.%J#3Hh]S].9_$7U"pI7$Ti+g6$,mdq-++,WN$'!'<h>RQRj)`L-U9Z3^/<@2o@FF11O*?J#-\(`\4D^&0knj=^So(kFN_IRlQ@0EgN$"@W;X&,QDO48Gp<laGrf$*EK-/fLG%U:EU9Sc,].&FTi@2LbgBTD#SD/,;/oM@i)bpGM5'cm^`+5nY<Pm8S8dC=28@Cs6M8<I&Q#:=.CAN%TEGG?K*kQH`Oi/#g/6AOfGIp"ApN>8qPhP1-[6T0^3'\mCALb9e`5,nDVu%@X/Ee&5<>o$)7g;TaUjn2^M_h7Wa?WVcm($97([pi3gWWK4p0Oj-q7X`8O]9%9)mQXJf/*(LH`cqcjuD-(N3!&*rGWg$Y_Ks"c5q_[Gci5DNSC*"XWK?eONYps9e^/hAS.3OlOg;gGg,\Xt(@X%?Fk$@-9OmC;'=G_'A<afo4lKao+]92nG.ntXCr+L8O]u,-J8>#bIeb;Ni9")(B0a#@MHP"5L&!luJpe!JCR-M@HAY1(Jq]bDEFc$XEYj%`*EEIkfo5dIH&W%XsCPkL+#u[:fTWOfLI]CE]Q/()Wh9:I^"1+n3eC,K[a#N:ajiq-Bhf&pkqsj2q8FXR9:/03*P>B7m?ducX%FeIQ+8p0b2oS-tcm%)bgCnS^i#D2?9nR-+'H_uXX^)H19<76*^_dRI[\m6]L_GjuAO/P.QDG:tZQ=Rsoa/?ll#9>i'H:1U2WtjQfgp`bE&YSU6<&.V:i\qDWNVZeN&eQEG.i,;Y.);S%D`n"/>@bX"IMW;N&HU
 K`LHj1N6QG5F=g7,9UTrP7fD#1ZR@,M`E)3.hYh-;?(o=9mT7WZfY\9?c8E.O0$2;-aP?cphWRJW3$[$t=67='$okHDjOqhOh)]su%\e<<K5p2V!t`_kF8~>
+Gatn&?#uJp'Sc)T/%A8+U?W]-FIg["48he=:+s%;4"A<;'...@s_3W>#r4_&cEM_hABf>+`*E,3>TYc6Yb^@KkgJrXFG<M[`-mH,d8:>C"p4\@je=$qbh1l8ZUX<W,bC"4&W1u\kI=-"@mVL?tUoZP=P>M(pcF8(;W0dN'fj[NqTm%lae/GK7i[n^]#2Tnm;IX(kFN_IRlQ?0EgN$"@W;X&,Qt_48>j;lZQmsKN<4Q(QD7#d9NBXcMgcOM"_Ds2LbgB*tGS:./>QdM@i)bpGM5Gcm^`+5nY<Pku;iXC=28@Cs6M8<Om=j:=.CAN%TEC[jo!jb@W<p[FF%!Z6Q75qWrKbXc5:Dalup,:EX"O?*?c8AWmk+Op;fK##/%3C#Z0/q0'=T.:keppmds\2m7^T.R+$%!m\;/IN!*BlB?0Ob%@R*ei:9i->H/s7kjHN:8<P+kU3#!VQ7+DJ=$(,<Q_Dk6J'PKI2[/lE8jfe1_,\e60GeR=;S7oT;u#P'G*lbm8I,4&iAO3almL>Ck*?6_L98U-tLf-"JKPVIIG,Rnrq;0bh:&rSLFXeb1T](qfRMe]&nt!aF'G!.0&22^,K9[_;RNEp5f0]l<>JO-/7,2QiU[74c!%Q&Ic6hXW&^J`GX#TbQu&!839;3@)FE#3pLDlLQ1:I5DR1Iis<N9VDndN+uNpQgsDXSI]19[Q/('QkKJNhQJ#7klKLm\jo?*9f(.ic%c;5)RlgFj36?DS@]uZn#Ru+EMn2inJU2\<d3"*^;`oj?/TSP;3>9FB^(pC+1alp$;nNdD[!"Sb/ZkU/JMA-&(Jh<C&Z6br/fO;u-Ws'h3pYc%>+ad.Qk!bS:U-$nAV3`tZ8cY'GF)VNU:NL?P+*/+lK`"G@h,.
 0[9;8qGOXQXM-pa$(=>Dg!mIB.7bbo,i`1JPa6#O0]XoONVTcT^U](>2=d0Q7@OngcpYQp4>NkTTrY74Gp+V0)F-ePMS,@:[1:P$$\,&BIcBIS*X7G58#b94Wnn_scDOnKuVr`QT_)V'/<AESW~>
 endstream
 endobj
 6 0 obj
@@ -72,17 +72,17 @@
 xref
 0 12
 0000000000 65535 f 
-0000001934 00000 n 
-0000001992 00000 n 
-0000002042 00000 n 
+0000001962 00000 n 
+0000002020 00000 n 
+0000002070 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
-0000001273 00000 n 
-0000001379 00000 n 
-0000001491 00000 n 
-0000001600 00000 n 
-0000001710 00000 n 
-0000001818 00000 n 
+0000001301 00000 n 
+0000001407 00000 n 
+0000001519 00000 n 
+0000001628 00000 n 
+0000001738 00000 n 
+0000001846 00000 n 
 trailer
 <<
 /Size 12
@@ -90,5 +90,5 @@
 /Info 4 0 R
 >>
 startxref
-2162
+2190
 %%EOF

Modified: hadoop/core/trunk/docs/mapred_tutorial.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/mapred_tutorial.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/mapred_tutorial.html (original)
+++ hadoop/core/trunk/docs/mapred_tutorial.html Fri Jun 13 17:39:12 2008
@@ -128,6 +128,9 @@
 <div class="menuitem">
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
+<div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
 <div class="menupage">
 <div class="menupagetitle">Map-Reduce Tutorial</div>
 </div>

Modified: hadoop/core/trunk/docs/native_libraries.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/native_libraries.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/native_libraries.html (original)
+++ hadoop/core/trunk/docs/native_libraries.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menupage">

Modified: hadoop/core/trunk/docs/quickstart.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/quickstart.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/quickstart.html (original)
+++ hadoop/core/trunk/docs/quickstart.html Fri Jun 13 17:39:12 2008
@@ -129,6 +129,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Modified: hadoop/core/trunk/docs/streaming.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/streaming.html?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/docs/streaming.html (original)
+++ hadoop/core/trunk/docs/streaming.html Fri Jun 13 17:39:12 2008
@@ -132,6 +132,9 @@
 <a href="hdfs_shell.html">FS Shell Guide</a>
 </div>
 <div class="menuitem">
+<a href="distcp.html">DistCp Guide</a>
+</div>
+<div class="menuitem">
 <a href="mapred_tutorial.html">Map-Reduce Tutorial</a>
 </div>
 <div class="menuitem">

Added: hadoop/core/trunk/src/docs/src/documentation/content/xdocs/distcp.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/docs/src/documentation/content/xdocs/distcp.xml?rev=667706&view=auto
==============================================================================
--- hadoop/core/trunk/src/docs/src/documentation/content/xdocs/distcp.xml (added)
+++ hadoop/core/trunk/src/docs/src/documentation/content/xdocs/distcp.xml Fri Jun 13 17:39:12 2008
@@ -0,0 +1,323 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document>
+
+  <header>
+    <title>DistCp</title>
+  </header>
+
+  <body>
+
+    <section>
+      <title>Overview</title>
+
+      <p>DistCp (distributed copy) is a tool used for large inter/intra-cluster
+      copying. It uses map/reduce to effect its distribution, error
+      handling/recovery, and reporting. It expands a list of files and
+      directories into input to map tasks, each of which will copy a partition
+      of the files specified in the source list. Its map/reduce pedigree has
+      endowed it with some quirks in both its semantics and execution. The
+      purpose of this document is to offer guidance for common tasks and to
+      elucidate its model.</p>
+
+    </section>
+
+    <section>
+      <title>Usage</title>
+
+      <section>
+        <title>Basic</title>
+        <p>The most common invocation of DistCp is an inter-cluster copy:</p>
+        <p><code>bash$ hadoop distcp hdfs://nn1:8020/foo/bar \</code><br/>
+           <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn2:8020/bar/foo</code></p>
+
+        <p>This will expand the namespace under <code>/foo/bar</code> on nn1
+        into a temporary file, partition its contents among a set of map
+        tasks, and start a copy on each TaskTracker from nn1 to nn2. Note
+        that DistCp expects absolute paths.</p>
+
+        <p>One can also specify multiple source directories on the command
+        line:</p>
+        <p><code>bash$ hadoop distcp hdfs://nn1:8020/foo/a \</code><br/>
+           <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn1:8020/foo/b \</code><br/>
+           <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                 hdfs://nn2:8020/bar/foo</code></p>
+
+        <p>Or, equivalently, from a file using the <code>-f</code> option:<br/>
+        <code>bash$ hadoop distcp -f hdfs://nn1:8020/srclist \</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;hdfs://nn2:8020/bar/foo</code><br/></p>
+
+        <p>Where <code>srclist</code> contains<br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</code></p>
+
+        <p>When copying from multiple sources, DistCp will abort the copy with
+        an error message if two sources collide, but collisions at the
+        destination are resolved per the <a href="#options">options</a>
+        specified. By default, files already existing at the destination are
+        skipped (i.e. not replaced by the source file). A count of skipped
+        files is reported at the end of each job, but it may be inaccurate if a
+        copier failed for some subset of its files, but succeeded on a later
+        attempt (see <a href="#etc">Appendix</a>).</p>
+
+        <p>It is important that each TaskTracker can reach and communicate with
+        both the source and destination filesystems. For hdfs, both the source
+        and destination must be running the same version of the protocol or use
+        a backwards-compatible protocol (see <a href="#cpver">Copying Between
+        Versions</a>).</p>
+
+        <p>After a copy, it is recommended that one generates and cross-checks
+        a listing of the source and destination to verify that the copy was
+        truly successful. Since DistCp employs both map/reduce and the
+        FileSystem API, issues in or between any of the three could adversely
+        and silently affect the copy. Some have had success running with
+        <code>-update</code> enabled to perform a second pass, but users should
+        be acquainted with its semantics before attempting this.</p>
+
+        <p>It's also worth noting that if another client is still writing to a
+        source file, the copy will likely fail. Attempting to overwrite a file
+        being written at the destination should also fail on HDFS. If a source
+        file is (re)moved before it is copied, the copy will fail with a
+        FileNotFoundException.</p>
+
+      </section> <!-- Basic -->
+
+      <section id="options">
+        <title>Options</title>
+
+        <section>
+        <title>Option Index</title>
+        <table>
+          <tr><th> Flag </th><th> Description </th><th> Notes </th></tr>
+
+          <tr><td><code>-p[rbugp]</code></td>
+              <td>Preserve<br/>
+                  &nbsp;&nbsp;r: replication number<br/>
+                  &nbsp;&nbsp;b: block size<br/>
+                  &nbsp;&nbsp;u: user<br/>
+                  &nbsp;&nbsp;g: group<br/>
+                  &nbsp;&nbsp;p: permission<br/></td>
+              <td>Modification times are not preserved. Also, when
+              <code>-update</code> is specified, status updates will
+              <strong>not</strong> be synchronized unless the file sizes
+              also differ (i.e. unless the file is re-created).
+              </td></tr>
+          <tr><td><code>-i</code></td>
+              <td>Ignore failures</td>
+              <td>As explained in the <a href="#etc">Appendix</a>, this option
+              will keep more accurate statistics about the copy than the
+              default case. It also preserves logs from failed copies, which
+              can be valuable for debugging. Finally, a failing map will not
+              cause the job to fail before all splits are attempted.
+              </td></tr>
+          <tr><td><code>-log &lt;logdir&gt;</code></td>
+              <td>Write logs to &lt;logdir&gt;</td>
+              <td>DistCp keeps logs of each file it attempts to copy as map
+              output. If a map fails, the log output will not be retained if
+              it is re-executed.
+              </td></tr>
+          <tr><td><code>-m &lt;num_maps&gt;</code></td>
+              <td>Maximum number of simultaneous copies</td>
+              <td>Specify the number of maps to copy data. Note that more maps
+              may not necessarily improve throughput.
+              </td></tr>
+          <tr><td><code>-overwrite</code></td>
+              <td>Overwrite destination</td>
+              <td>If a map fails and <code>-i</code> is not specified, all the
+              files in the split, not only those that failed, will be recopied.
+              As discussed in the <a href="#uo">following</a>, it also changes
+              the semantics for generating destination paths, so users should
+              use this carefully.
+              </td></tr>
+          <tr><td><code>-update</code></td>
+              <td>Overwrite if src size different from dst size</td>
+              <td>As noted in the preceding, this is not a &quot;sync&quot;
+              operation. The only criterion examined is the source and
+              destination file sizes; if they differ, the source file
+              replaces the destination file. As discussed in the
+              <a href="#uo">following</a>, it also changes the semantics for
+              generating destination paths, so users should use this carefully.
+              </td></tr>
+          <tr><td><code>-f &lt;urilist_uri&gt;</code></td>
+              <td>Use list at &lt;urilist_uri&gt; as src list</td>
+              <td>This is equivalent to listing each source on the command
+              line. The <code>urilist_uri</code> list should be a fully
+              qualified URI.
+              </td></tr>
+
+        </table>
+
+      </section>
+
+      <section id="uo">
+        <title>Update and Overwrite</title>
+
+        <p>It's worth giving some examples of <code>-update</code> and
+        <code>-overwrite</code>. Consider a copy from <code>/foo/a</code> and
+        <code>/foo/b</code> to <code>/bar/foo</code>, where the sources contain
+        the following:</p>
+
+        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ab</code></p>
+
+        <p>If either <code>-update</code> or <code>-overwrite</code> is set,
+        then both sources will map an entry to <code>/bar/foo/ab</code> at the
+        destination. For both options, the contents of each source directory
+        are compared with the <strong>contents</strong> of the destination
+        directory. Rather than permit this conflict, DistCp will abort.</p>
+
+        <p>In the default case, both <code>/bar/foo/a</code> and
+        <code>/bar/foo/b</code> will be created and neither will collide.</p>
+
+        <p>Now consider a legal copy using <code>-update</code>:<br/>
+        <code>distcp -update hdfs://nn1:8020/foo/a \</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              hdfs://nn1:8020/foo/b \</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              hdfs://nn2:8020/bar</code></p>
+
+        <p>With sources/sizes:</p>
+
+        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba 64</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/bb 32</code></p>
+
+        <p>And destination/sizes:</p>
+
+        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 64</code></p>
+
+        <p>Will effect:</p>
+
+        <p><code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ab 32</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 64</code><br/>
+        <code>&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 32</code></p>
+
+        <p>Only <code>aa</code> is not overwritten on nn2. If
+        <code>-overwrite</code> were specified, all elements would be
+        overwritten.</p>
+
+      </section> <!-- Update and Overwrite -->
+
+      </section> <!-- Options -->
+
+    </section> <!-- Usage -->
+
+    <section id="etc">
+      <title>Appendix</title>
+
+      <section>
+        <title>Map sizing</title>
+
+          <p>DistCp makes a faint attempt to size each map comparably so that
+          each copies roughly the same number of bytes. Note that files are the
+          finest level of granularity, so increasing the number of simultaneous
+          copiers (i.e. maps) may not always increase the number of
+          simultaneous copies nor the overall throughput.</p>
+
+          <p>If <code>-m</code> is not specified, DistCp will attempt to
+          schedule work for <code>min(total_bytes / bytes.per.map, 20 *
+          num_task_trackers)</code> where <code>bytes.per.map</code> defaults
+          to 256MB.</p>
+
+          <p>Tuning the number of maps to the size of the source and
+          destination clusters, the size of the copy, and the available
+          bandwidth is recommended for long-running and regularly run jobs.</p>
+
+      </section>
+
+      <section id="cpver">
+        <title>Copying between versions of HDFS</title>
+
+        <p>For copying between two different versions of Hadoop, one will
+        usually use HftpFileSystem. This is a read-only FileSystem, so DistCp
+        must be run on the destination cluster (more specifically, on
+        TaskTrackers that can write to the destination cluster). Each source is
+        specified as <code>hftp://&lt;dfs.http.address&gt;/&lt;path&gt;</code>
+        (the default <code>dfs.http.address</code> is
+        &lt;namenode&gt;:50070).</p>
+
+      </section>
+
+      <section>
+        <title>Map/Reduce and other side-effects</title>
+
+        <p>As has been mentioned in the preceding, should a map fail to copy
+        one of its inputs, there will be several side-effects.</p>
+
+        <ul>
+
+          <li>Unless <code>-i</code> is specified, the logs generated by that
+          task attempt will be replaced by the previous attempt.</li>
+
+          <li>Unless <code>-overwrite</code> is specified, files successfully
+          copied by a previous map on a re-execution will be marked as
+          &quot;skipped&quot;.</li>
+
+          <li>If a map fails <code>mapred.map.max.attempts</code> times, the
+          remaining map tasks will be killed (unless <code>-i</code> is
+          set).</li>
+
+          <li>If <code>mapred.speculative.execution</code> is set set
+          <code>final</code> and <code>true</code>, the result of the copy is
+          undefined.</li>
+
+        </ul>
+
+      </section>
+
+      <!--
+      <section>
+        <title>Firewalls and SSL</title>
+
+        <p>To copy over HTTP, use the HftpFileSystem as described in the
+        preceding <a href="#cpver">section</a>, and ensure that the required
+        port(s) are open.</p>
+
+        <p>TODO</p>
+
+      </section>
+      -->
+
+    </section> <!-- Appendix -->
+
+  </body>
+
+</document>

Modified: hadoop/core/trunk/src/docs/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/docs/src/documentation/content/xdocs/site.xml?rev=667706&r1=667705&r2=667706&view=diff
==============================================================================
--- hadoop/core/trunk/src/docs/src/documentation/content/xdocs/site.xml (original)
+++ hadoop/core/trunk/src/docs/src/documentation/content/xdocs/site.xml Fri Jun 13 17:39:12 2008
@@ -40,6 +40,7 @@
     <hdfs      label="HDFS Permissions Guide"    href="hdfs_permissions_guide.html" />
     <hdfs      label="HDFS Quotas Administrator Guide" href="hdfs_quota_admin_guide.html" />
     <fs        label="FS Shell Guide"     href="hdfs_shell.html" />
+    <distcp    label="DistCp Guide"       href="distcp.html" />
     <mapred    label="Map-Reduce Tutorial" href="mapred_tutorial.html" />
     <mapred    label="Native Hadoop Libraries" href="native_libraries.html" />
     <streaming label="Streaming"          href="streaming.html" />