source: proiecte/HadoopJUnit/hadoop-0.20.1/docs/cn/distcp.html @ 120

Last change on this file since 120 was 120, checked in by (none), 14 years ago

Added the mail files for the Hadoop JUNit Project

  • Property svn:executable set to *
File size: 21.1 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<head>
4<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
5<meta content="Apache Forrest" name="Generator">
6<meta name="Forrest-version" content="0.8">
7<meta name="Forrest-skin-name" content="pelt">
8<title>DistCp</title>
9<link type="text/css" href="skin/basic.css" rel="stylesheet">
10<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
11<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
12<link type="text/css" href="skin/profile.css" rel="stylesheet">
13<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>
14<link rel="shortcut icon" href="images/favicon.ico">
15</head>
16<body onload="init()">
17<script type="text/javascript">ndeSetTextSize();</script>
18<div id="top">
19<!--+
20    |breadtrail
21    +-->
22<div class="breadtrail">
23<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>
24</div>
25<!--+
26    |header
27    +-->
28<div class="header">
29<!--+
30    |start group logo
31    +-->
32<div class="grouplogo">
33<a href="http://hadoop.apache.org/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Apache Hadoop"></a>
34</div>
35<!--+
36    |end group logo
37    +-->
38<!--+
39    |start Project Logo
40    +-->
41<div class="projectlogo">
42<a href="http://hadoop.apache.org/core/"><img class="logoImage" alt="Hadoop" src="images/core-logo.gif" title="Scalable Computing Platform"></a>
43</div>
44<!--+
45    |end Project Logo
46    +-->
47<!--+
48    |start Search
49    +-->
50<div class="searchbox">
51<form action="http://www.google.com/search" method="get" class="roundtopsmall">
52<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; 
53                    <input name="Search" value="Search" type="submit">
54</form>
55</div>
56<!--+
57    |end search
58    +-->
59<!--+
60    |start Tabs
61    +-->
62<ul id="tabs">
63<li>
64<a class="unselected" href="http://hadoop.apache.org/core/">项目</a>
65</li>
66<li>
67<a class="unselected" href="http://wiki.apache.org/hadoop">绎基</a>
68</li>
69<li class="current">
70<a class="selected" href="index.html">Hadoop 0.18文档</a>
71</li>
72</ul>
73<!--+
74    |end Tabs
75    +-->
76</div>
77</div>
78<div id="main">
79<div id="publishedStrip">
80<!--+
81    |start Subtabs
82    +-->
83<div id="level2tabs"></div>
84<!--+
85    |end Endtabs
86    +-->
87<script type="text/javascript"><!--
88document.write("Last Published: " + document.lastModified);
89//  --></script>
90</div>
91<!--+
92    |breadtrail
93    +-->
94<div class="breadtrail">
95
96             &nbsp;
97           </div>
98<!--+
99    |start Menu, mainarea
100    +-->
101<!--+
102    |start Menu
103    +-->
104<div id="menu">
105<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">文档</div>
106<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
107<div class="menuitem">
108<a href="index.html">抂述</a>
109</div>
110<div class="menuitem">
111<a href="quickstart.html">快速入闚</a>
112</div>
113<div class="menuitem">
114<a href="cluster_setup.html">集矀搭建</a>
115</div>
116<div class="menuitem">
117<a href="hdfs_design.html">HDFS构架讟计</a>
118</div>
119<div class="menuitem">
120<a href="hdfs_user_guide.html">HDFS䜿甚指南</a>
121</div>
122<div class="menuitem">
123<a href="hdfs_permissions_guide.html">HDFS权限指南</a>
124</div>
125<div class="menuitem">
126<a href="hdfs_quota_admin_guide.html">HDFS配额管理指南</a>
127</div>
128<div class="menuitem">
129<a href="commands_manual.html">呜什手册</a>
130</div>
131<div class="menuitem">
132<a href="hdfs_shell.html">FS Shell䜿甚指南</a>
133</div>
134<div class="menupage">
135<div class="menupagetitle">DistCp䜿甚指南</div>
136</div>
137<div class="menuitem">
138<a href="mapred_tutorial.html">Map-Reduce教皋</a>
139</div>
140<div class="menuitem">
141<a href="native_libraries.html">Hadoop本地库</a>
142</div>
143<div class="menuitem">
144<a href="streaming.html">Streaming</a>
145</div>
146<div class="menuitem">
147<a href="hadoop_archives.html">Hadoop Archives</a>
148</div>
149<div class="menuitem">
150<a href="hod.html">Hadoop On Demand</a>
151</div>
152<div class="menuitem">
153<a href="http://hadoop.apache.org/core/docs/r0.18.2/api/index.html">API参考</a>
154</div>
155<div class="menuitem">
156<a href="http://hadoop.apache.org/core/docs/r0.18.2/jdiff/changes.html">API Changes</a>
157</div>
158<div class="menuitem">
159<a href="http://wiki.apache.org/hadoop/">绎基</a>
160</div>
161<div class="menuitem">
162<a href="http://wiki.apache.org/hadoop/FAQ">垞见问题</a>
163</div>
164<div class="menuitem">
165<a href="http://hadoop.apache.org/core/mailing_lists.html">邮件列衚</a>
166</div>
167<div class="menuitem">
168<a href="http://hadoop.apache.org/core/docs/r0.18.2/releasenotes.html">发行诎明</a>
169</div>
170<div class="menuitem">
171<a href="http://hadoop.apache.org/core/docs/r0.18.2/changes.html">变曎日志</a>
172</div>
173</div>
174<div id="credit"></div>
175<div id="roundbottom">
176<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
177<!--+
178  |alternative credits
179  +-->
180<div id="credit2"></div>
181</div>
182<!--+
183    |end Menu
184    +-->
185<!--+
186    |start content
187    +-->
188<div id="content">
189<div title="Portable Document Format" class="pdflink">
190<a class="dida" href="distcp.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
191        PDF</a>
192</div>
193<h1>DistCp</h1>
194<div id="minitoc-area">
195<ul class="minitoc">
196<li>
197<a href="#%E6%A6%82%E8%BF%B0">抂述</a>
198</li>
199<li>
200<a href="#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95">䜿甚方法</a>
201<ul class="minitoc">
202<li>
203<a href="#%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95">基本䜿甚方法</a>
204</li>
205<li>
206<a href="#options">选项</a>
207<ul class="minitoc">
208<li>
209<a href="#%E9%80%89%E9%A1%B9%E7%B4%A2%E5%BC%95">选项玢匕</a>
210</li>
211<li>
212<a href="#uo">曎新和芆盖</a>
213</li>
214</ul>
215</li>
216</ul>
217</li>
218<li>
219<a href="#etc">附圕</a>
220<ul class="minitoc">
221<li>
222<a href="#Map%E6%95%B0%E7%9B%AE">Map数目</a>
223</li>
224<li>
225<a href="#cpver">䞍同HDFS版本闎的拷莝</a>
226</li>
227<li>
228<a href="#Map%2FReduce%E5%92%8C%E5%89%AF%E6%95%88%E5%BA%94">Map/Reduce和副效应</a>
229</li>
230</ul>
231</li>
232</ul>
233</div>
234
235   
236<a name="N1000D"></a><a name="%E6%A6%82%E8%BF%B0"></a>
237<h2 class="h3">抂述</h2>
238<div class="section">
239<p>DistCp分垃匏拷莝是甚于倧规暡集矀内郚和集矀之闎拷莝的工具。
240          它䜿甚Map/Reduce实现文件分发错误倄理和恢倍以及报告生成。
241      它把文件和目圕的列衚䜜䞺map任务的蟓入每䞪任务䌚完成源列衚䞭郚分文件的拷莝。
242      由于䜿甚了Map/Reduce方法这䞪工具圚语义和执行䞊郜䌚有特殊的地方。
243      这篇文档䌚䞺垞甚DistCp操䜜提䟛指南并阐述它的工䜜暡型。
244      </p>
245</div>
246
247   
248<a name="N10017"></a><a name="%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95"></a>
249<h2 class="h3">䜿甚方法</h2>
250<div class="section">
251<a name="N1001D"></a><a name="%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95"></a>
252<h3 class="h4">基本䜿甚方法</h3>
253<p>DistCp最垞甚圚集矀之闎的拷莝</p>
254<p>
255<span class="codefrag">bash$ hadoop distcp hdfs://nn1:8020/foo/bar \</span>
256<br>
257           
258<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
259                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
260                 hdfs://nn2:8020/bar/foo</span>
261</p>
262<p>这条呜什䌚把nn1集矀的<span class="codefrag">/foo/bar</span>目圕䞋的所有文件或目圕名展匀并存傚到䞀䞪䞎时文件䞭这些文件内容的拷莝工䜜被分配给倚䞪map任务
263        然后每䞪TaskTracker分别执行从nn1到nn2的拷莝操䜜。泚意DistCp䜿甚绝对路埄进行操䜜。
264        </p>
265<p>呜什行䞭可以指定倚䞪源目圕</p>
266<p>
267<span class="codefrag">bash$ hadoop distcp hdfs://nn1:8020/foo/a \</span>
268<br>
269           
270<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
271                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
272                 hdfs://nn1:8020/foo/b \</span>
273<br>
274           
275<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
276                 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
277                 hdfs://nn2:8020/bar/foo</span>
278</p>
279<p>或者䜿甚<span class="codefrag">-f</span>选项从文件里获埗倚䞪源<br>
280       
281<span class="codefrag">bash$ hadoop distcp -f hdfs://nn1:8020/srclist \</span>
282<br>
283       
284<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
285              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
286              &nbsp;hdfs://nn2:8020/bar/foo</span>
287<br>
288</p>
289<p>其䞭<span class="codefrag">srclist</span> çš„内容是<br>
290       
291<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
292<br>
293       
294<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
295</p>
296<p>圓从倚䞪源拷莝时劂果䞀䞪源冲突DistCp䌚停止拷莝并提瀺出错信息
297        劂果圚目的䜍眮发生冲突䌚根据<a href="#options">选项讟眮</a>解决。
298        默讀情况䌚跳过已经存圚的目标文件比劂䞍甚源文件做替换操䜜。每次操䜜结束时
299        郜䌚报告跳过的文件数目䜆是劂果某些拷莝操䜜倱莥了䜆圚之后的尝试成功了
300        那么报告的信息可胜䞍借粟确请参考<a href="#etc">附圕</a>。
301        </p>
302<p>每䞪TaskTracker必须郜胜借䞎源端和目的端文件系统进行访问和亀互。
303        对于HDFS来诎源和目的端芁运行盞同版本的协议或者䜿甚向䞋兌容的协议。
304        请参考<a href="#cpver">䞍同版本闎的拷莝</a> ïŒ‰ã€‚
305        </p>
306<p>拷莝完成后建议生成源端和目的端文件的列衚并亀叉检查来确讀拷莝真正成功。
307        因䞺DistCp䜿甚Map/Reduce和文件系统API进行操䜜所以这䞉者或它们之闎有任䜕问题
308        郜䌚圱响拷莝操䜜。䞀些Distcp呜什的成功执行可以通过再次执行垊-update参数的该呜什来完成
309        䜆甚户圚劂歀操䜜之前应该对该呜什的语法埈熟悉。
310        </p>
311<p>倌埗泚意的是圓及䞀䞪客户端同时圚向源文件写入时拷莝埈有可胜䌚倱莥。
312        尝试芆盖HDFS䞊正圚被写入的文件的操䜜也䌚倱莥。
313        劂果䞀䞪源文件圚拷莝之前被移劚或删陀了拷莝倱莥同时蟓出匂垞
314        FileNotFoundException。</p>
315<a name="N1007B"></a><a name="options"></a>
316<h3 class="h4">选项</h3>
317<a name="N10081"></a><a name="%E9%80%89%E9%A1%B9%E7%B4%A2%E5%BC%95"></a>
318<h4>选项玢匕</h4>
319<table class="ForrestTable" cellspacing="1" cellpadding="4">
320         
321<tr>
322<th colspan="1" rowspan="1"> æ ‡è¯†  </th><th colspan="1" rowspan="1"> æè¿° </th><th colspan="1" rowspan="1"> å€‡æ³š </th>
323</tr>
324
325         
326<tr>
327<td colspan="1" rowspan="1"><span class="codefrag">-p[rbugp]</span></td>
328              <td colspan="1" rowspan="1">Preserve<br>
329                  &nbsp;&nbsp;r: replication number<br>
330                  &nbsp;&nbsp;b: block size<br>
331                  &nbsp;&nbsp;u: user<br>
332                  &nbsp;&nbsp;g: group<br>
333                  &nbsp;&nbsp;p: permission<br>
334</td>
335              <td colspan="1" rowspan="1">修改次数䞍䌚被保留。并䞔圓指定
336              <span class="codefrag">-update</span> æ—¶ïŒŒæ›Žæ–°çš„状态<strong>䞍</strong>䌚
337              被同步陀非文件倧小䞍同比劂文件被重新创建。
338              </td>
339</tr>
340         
341<tr>
342<td colspan="1" rowspan="1"><span class="codefrag">-i</span></td>
343              <td colspan="1" rowspan="1">応略倱莥</td>
344              <td colspan="1" rowspan="1">就像圚 <a href="#etc">附圕</a>䞭提到的这䞪选项䌚比默讀情况提䟛关于拷莝的曎粟确的统计 同时它还将保留倱莥拷莝操䜜的日志这些日志信息可以甚于调试。最后劂果䞀䞪map倱莥了䜆并没完成所有分块任务的尝试这䞍䌚富臎敎䞪䜜䞚的倱莥。
345              </td>
346</tr>
347         
348<tr>
349<td colspan="1" rowspan="1"><span class="codefrag">-log &lt;logdir&gt;</span></td>
350              <td colspan="1" rowspan="1">记圕日志到 &lt;logdir&gt;</td>
351              <td colspan="1" rowspan="1">DistCp䞺每䞪文件的每次尝试拷莝操䜜郜记圕日志并把日志䜜䞺map的蟓出。
352              劂果䞀䞪map倱莥了圓重新执行时这䞪日志䞍䌚被保留。
353              </td>
354</tr>
355         
356<tr>
357<td colspan="1" rowspan="1"><span class="codefrag">-m &lt;num_maps&gt;</span></td>
358              <td colspan="1" rowspan="1">同时拷莝的最倧数目</td>
359              <td colspan="1" rowspan="1">指定了拷莝数据时map的数目。请泚意并䞍是map数越倚吞吐量越倧。
360              </td>
361</tr>
362         
363<tr>
364<td colspan="1" rowspan="1"><span class="codefrag">-overwrite</span></td>
365              <td colspan="1" rowspan="1">芆盖目标</td>
366              <td colspan="1" rowspan="1">劂果䞀䞪map倱莥并䞔没有䜿甚<span class="codefrag">-i</span>选项䞍仅仅那些拷莝倱莥的文件这䞪分块任务䞭的所有文件郜䌚被重新拷莝。
367                          就像<a href="#uo">䞋面</a>提到的它䌚改变生成目标路埄的语义所以
368              甚户芁小心䜿甚这䞪选项。
369              </td>
370</tr>
371         
372<tr>
373<td colspan="1" rowspan="1"><span class="codefrag">-update</span></td>
374              <td colspan="1" rowspan="1">劂果源和目标的倧小䞍䞀样则进行芆盖</td>
375              <td colspan="1" rowspan="1">像之前提到的这䞍是"同步"操䜜。
376              执行芆盖的唯䞀标准是源文件和目标文件倧小是吊盞同劂果䞍同则源文件替换目标文件。
377              像 <a href="#uo">䞋面</a>提到的它也改变生成目标路埄的语义
378              甚户䜿甚芁小心。
379              </td>
380</tr>
381         
382<tr>
383<td colspan="1" rowspan="1"><span class="codefrag">-f &lt;urilist_uri&gt;</span></td>
384              <td colspan="1" rowspan="1">䜿甚&lt;urilist_uri&gt; äœœäžºæºæ–‡ä»¶åˆ—è¡š</td>
385              <td colspan="1" rowspan="1">这等价于把所有文件名列圚呜什行䞭。
386              <span class="codefrag">urilist_uri</span> åˆ—衚应该是完敎合法的URI。
387              </td>
388</tr>
389
390       
391</table>
392<a name="N10133"></a><a name="uo"></a>
393<h4>曎新和芆盖</h4>
394<p>这里给出䞀些 <span class="codefrag">-update</span>和 <span class="codefrag">-overwrite</span>的䟋子。
395        考虑䞀䞪从<span class="codefrag">/foo/a</span> å’Œ
396        <span class="codefrag">/foo/b</span> åˆ° <span class="codefrag">/bar/foo</span>的拷莝源路埄包括
397        </p>
398<p>
399<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
400<br>
401       
402<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa</span>
403<br>
404       
405<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab</span>
406<br>
407       
408<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
409<br>
410       
411<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba</span>
412<br>
413       
414<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ab</span>
415</p>
416<p>劂果没讟眮<span class="codefrag">-update</span>或 <span class="codefrag">-overwrite</span>选项
417        那么䞀䞪源郜䌚映射到目标端的
418        <span class="codefrag">/bar/foo/ab</span>。
419        劂果讟眮了这䞀䞪选项每䞪源目圕的内容郜䌚和目标目圕的
420         <strong>内容</strong> åšæ¯”蟃。DistCp碰到这类冲突的情况䌚终止操䜜并退出。</p>
421<p>默讀情况䞋<span class="codefrag">/bar/foo/a</span> å’Œ
422        <span class="codefrag">/bar/foo/b</span> ç›®åœ•éƒœäŒšè¢«åˆ›å»ºïŒŒæ‰€ä»¥å¹¶äžäŒšæœ‰å†²çªã€‚</p>
423<p>现圚考虑䞀䞪䜿甚<span class="codefrag">-update</span>合法的操䜜:<br>
424       
425<span class="codefrag">distcp -update hdfs://nn1:8020/foo/a \</span>
426<br>
427       
428<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
429              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
430              hdfs://nn1:8020/foo/b \</span>
431<br>
432       
433<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
434              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
435              hdfs://nn2:8020/bar</span>
436</p>
437<p>其䞭源路埄/倧小:</p>
438<p>
439<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a</span>
440<br>
441       
442<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/aa 32</span>
443<br>
444       
445<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/a/ab 32</span>
446<br>
447       
448<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b</span>
449<br>
450       
451<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/ba 64</span>
452<br>
453       
454<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn1:8020/foo/b/bb 32</span>
455</p>
456<p>和目的路埄/倧小:</p>
457<p>
458<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</span>
459<br>
460       
461<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</span>
462<br>
463       
464<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 32</span>
465<br>
466       
467<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 64</span>
468</p>
469<p>䌚产生:</p>
470<p>
471<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar</span>
472<br>
473       
474<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/aa 32</span>
475<br>
476       
477<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ab 32</span>
478<br>
479       
480<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/ba 64</span>
481<br>
482       
483<span class="codefrag">&nbsp;&nbsp;&nbsp;&nbsp;hdfs://nn2:8020/bar/bb 32</span>
484</p>
485<p>只有nn2的<span class="codefrag">aa</span>文件没有被芆盖。劂果指定了
486        <span class="codefrag">-overwrite</span>选项所有文件郜䌚被芆盖。
487        </p>
488</div> <!-- Usage -->
489
490   
491<a name="N101E4"></a><a name="etc"></a>
492<h2 class="h3">附圕</h2>
493<div class="section">
494<a name="N101EA"></a><a name="Map%E6%95%B0%E7%9B%AE"></a>
495<h3 class="h4">Map数目</h3>
496<p>DistCp䌚尝试着均分需芁拷莝的内容这样每䞪map拷莝差䞍倚盞等倧小的内容。
497                  䜆因䞺文件是最小的拷莝粒床所以配眮增加同时拷莝劂map的数目䞍䞀定䌚增加实际同时拷莝的数目以及总吞吐量。
498          </p>
499<p>劂果没䜿甚<span class="codefrag">-m</span>选项DistCp䌚尝试圚调床工䜜时指定map的数目
500          䞺 <span class="codefrag">min (total_bytes / bytes.per.map, 20 * num_task_trackers)</span>
501                  其䞭<span class="codefrag">bytes.per.map</span>默讀是256MB。</p>
502<p>建议对于长时闎运行或定期运行的䜜䞚根据源和目标集矀倧小、拷莝数量倧小以及垊宜调敎map的数目。
503          </p>
504<a name="N10203"></a><a name="cpver"></a>
505<h3 class="h4">䞍同HDFS版本闎的拷莝</h3>
506<p>对于䞍同Hadoop版本闎的拷莝甚户应该䜿甚HftpFileSystem。
507        这是䞀䞪只读文件系统所以DistCp必须运行圚目标端集矀䞊曎确切的诎是圚胜借写入目标集矀的TaskTracker䞊。
508        源的栌匏是
509        <span class="codefrag">hftp://&lt;dfs.http.address&gt;/&lt;path&gt;</span>
510        默讀情况<span class="codefrag">dfs.http.address</span>是
511        &lt;namenode&gt;:50070。</p>
512<a name="N10213"></a><a name="Map%2FReduce%E5%92%8C%E5%89%AF%E6%95%88%E5%BA%94"></a>
513<h3 class="h4">Map/Reduce和副效应</h3>
514<p>像前面提到的map拷莝蟓入文件倱莥时䌚垊来䞀些副效应。
515        </p>
516<ul>
517
518         
519<li>陀非䜿甚了<span class="codefrag">-i</span>任务产生的日志䌚被新的尝试替换掉。
520          </li>
521
522         
523<li>陀非䜿甚了<span class="codefrag">-overwrite</span>文件被之前的map成功拷莝后圓又䞀次执行拷莝时䌚被标记䞺
524          "被応略"。</li>
525
526         
527<li>劂果map倱莥了<span class="codefrag">mapred.map.max.attempts</span>次剩䞋的map任务䌚被终止陀非䜿甚了<span class="codefrag">-i</span>)。
528          </li>
529
530         
531<li>劂果<span class="codefrag">mapred.speculative.execution</span>被讟眮䞺
532          <span class="codefrag">final</span>和<span class="codefrag">true</span>则拷莝的结果是未定义的。</li>
533
534       
535</ul>
536</div> <!-- Appendix -->
537
538 
539</div>
540<!--+
541    |end content
542    +-->
543<div class="clearboth">&nbsp;</div>
544</div>
545<div id="footer">
546<!--+
547    |start bottomstrip
548    +-->
549<div class="lastmodified">
550<script type="text/javascript"><!--
551document.write("Last Published: " + document.lastModified);
552//  --></script>
553</div>
554<div class="copyright">
555        Copyright &copy;
556         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
557</div>
558<!--+
559    |end bottomstrip
560    +-->
561</div>
562</body>
563</html>
Note: See TracBrowser for help on using the repository browser.