source: proiecte/HadoopJUnit/hadoop-0.20.1/docs/cn/native_libraries.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: 13.9 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>Hadoop本地库</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="menuitem">
135<a href="distcp.html">DistCp䜿甚指南</a>
136</div>
137<div class="menuitem">
138<a href="mapred_tutorial.html">Map-Reduce教皋</a>
139</div>
140<div class="menupage">
141<div class="menupagetitle">Hadoop本地库</div>
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="native_libraries.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
191        PDF</a>
192</div>
193<h1>Hadoop本地库</h1>
194<div id="minitoc-area">
195<ul class="minitoc">
196<li>
197<a href="#%E7%9B%AE%E7%9A%84">目的</a>
198</li>
199<li>
200<a href="#%E7%BB%84%E4%BB%B6">组件</a>
201</li>
202<li>
203<a href="#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95">䜿甚方法</a>
204</li>
205<li>
206<a href="#%E6%94%AF%E6%8C%81%E7%9A%84%E5%B9%B3%E5%8F%B0">支持的平台</a>
207</li>
208<li>
209<a href="#%E6%9E%84%E5%BB%BAHadoop%E6%9C%AC%E5%9C%B0%E5%BA%93">构建Hadoop本地库</a>
210<ul class="minitoc">
211<li>
212<a href="#%E6%B3%A8%E6%84%8F">泚意</a>
213</li>
214</ul>
215</li>
216<li>
217<a href="#%E4%BD%BF%E7%94%A8DistributedCache+%E5%8A%A0%E8%BD%BD%E6%9C%AC%E5%9C%B0%E5%BA%93"> äœ¿ç”šDistributedCache 加蜜本地库</a>
218</li>
219</ul>
220</div>
221 
222   
223<a name="N1000D"></a><a name="%E7%9B%AE%E7%9A%84"></a>
224<h2 class="h3">目的</h2>
225<div class="section">
226<p>
227     é‰ŽäºŽæ€§èƒœé—®é¢˜ä»¥åŠæŸäº›Java类库的猺倱对于某些组件Hadoop提䟛了自己的本地实现。
228        这些组件保存圚Hadoop的䞀䞪独立的劚态铟接的库里。这䞪库圚*nix平台䞊叫<em>libhadoop.so</em>. 本文䞻芁介绍本地库的䜿甚方法以及劂䜕构建本地库。
229</p>
230</div>
231   
232   
233<a name="N1001A"></a><a name="%E7%BB%84%E4%BB%B6"></a>
234<h2 class="h3">组件</h2>
235<div class="section">
236<p>Hadoop现圚已经有以䞋
237      <a href="http://hadoop.apache.org/core/docs/r0.18.2/api/org/apache/hadoop/io/compress/CompressionCodec.html">
238      compression codecs</a>本地组件</p>
239<ul>
240       
241<li>
242<a href="http://www.zlib.net/">zlib</a>
243</li>
244       
245<li>
246<a href="http://www.gzip.org/">gzip</a>
247</li>
248       
249<li>
250<a href="http://www.oberhumer.com/opensource/lzo/">lzo</a>
251</li>
252     
253</ul>
254<p>圚以䞊组件䞭lzo和gzip压猩猖解码噚必须䜿甚hadoop本地库才胜运行。
255      </p>
256</div>
257
258   
259<a name="N1003D"></a><a name="%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95"></a>
260<h2 class="h3">䜿甚方法</h2>
261<div class="section">
262<p>hadoop本地库的甚法埈简单</p>
263<ul>
264       
265<li>
266          看侀例
267        <a href="#%E6%94%AF%E6%8C%81%E7%9A%84%E5%B9%B3%E5%8F%B0">支持的平台</a>.
268        </li>
269       
270<li>
271           
272<a href="http://hadoop.apache.org/core/releases.html#Download">䞋蜜</a> é¢„构建的32䜍i386架构的Linux本地hadoop库可以圚hadoop发行版的<span class="codefrag">lib/native</span>目圕䞋扟到或者自己
273          <a href="#%E6%9E%84%E5%BB%BAHadoop%E6%9C%AC%E5%9C%B0%E5%BA%93">构建</a> è¿™äº›åº“。
274        </li>
275       
276<li>
277          确保䜠的平台已经安装了<strong>zlib-1.2</strong>以䞊版本或者<strong>lzo2.0</strong>以䞊版本的蜯件包或者䞀者均已安装根据䜠的需芁。
278        </li>
279     
280</ul>
281<p>
282<span class="codefrag">bin/hadoop</span> è„šæœ¬é€šè¿‡ç³»ç»Ÿå±žæ€§
283      <em>-Djava.library.path=&lt;path&gt;</em>来确讀hadoop本地库是吊包含圚库路埄里。</p>
284<p>检查hadoop日志文件可以查看hadoop库是吊正垞正垞情况䞋䌚看到</p>
285<p>
286       
287<span class="codefrag">
288          DEBUG util.NativeCodeLoader - Trying to load the custom-built
289          native-hadoop library...
290        </span>
291<br>
292       
293<span class="codefrag">
294          INFO  util.NativeCodeLoader - Loaded the native-hadoop library
295        </span>
296     
297</p>
298<p>劂果出错䌚看到</p>
299<p>
300       
301<span class="codefrag">
302          INFO util.NativeCodeLoader - Unable to load native-hadoop library for
303          your platform... using builtin-java classes where applicable
304        </span>
305     
306</p>
307</div>
308   
309   
310<a name="N10086"></a><a name="%E6%94%AF%E6%8C%81%E7%9A%84%E5%B9%B3%E5%8F%B0"></a>
311<h2 class="h3">支持的平台</h2>
312<div class="section">
313<p>Hadoop本地库只支持*nix平台已经广泛䜿甚圚GNU/Linux平台䞊䜆是䞍支持
314      <a href="http://www.cygwin.com/">Cygwin</a> 
315      和 <a href="http://www.apple.com/macosx">Mac OS X</a>。
316      </p>
317<p>已经测试过的GNU/Linux发行版本</p>
318<ul>
319       
320<li>
321         
322<a href="http://www.redhat.com/rhel/">RHEL4</a>/<a href="http://fedora.redhat.com/">Fedora</a>
323       
324</li>
325       
326<li>
327<a href="http://www.ubuntu.com/">Ubuntu</a>
328</li>
329       
330<li>
331<a href="http://www.gentoo.org/">Gentoo</a>
332</li>
333     
334</ul>
335<p>圚䞊述平台䞊32/64䜍Hadoop本地库分别胜和32/64䜍的jvm䞀起正垞运行。
336      </p>
337</div>
338   
339   
340<a name="N100B6"></a><a name="%E6%9E%84%E5%BB%BAHadoop%E6%9C%AC%E5%9C%B0%E5%BA%93"></a>
341<h2 class="h3">构建Hadoop本地库</h2>
342<div class="section">
343<p>Hadoop本地库䜿甚
344      <a href="http://en.wikipedia.org/wiki/ANSI_C">ANSI C</a> çŒ–写䜿甚GNU autotools工具铟 (autoconf, autoheader, automake, autoscan, libtool)构建。也就是诎构建hadoop库的平台需芁有标准C的猖译噚和GNU autotools工具铟。请参看
345      <a href="#%E6%94%AF%E6%8C%81%E7%9A%84%E5%B9%B3%E5%8F%B0">支持的平台</a>。</p>
346<p>䜠的目标平台䞊可胜䌚需芁的蜯件包
347      </p>
348<ul>
349       
350<li>
351          C 猖译噚 (e.g. <a href="http://gcc.gnu.org/">GNU C Compiler</a>)
352        </li>
353       
354<li>
355          GNU Autools 工具铟:
356          <a href="http://www.gnu.org/software/autoconf/">autoconf</a>,
357          <a href="http://www.gnu.org/software/automake/">automake</a>,
358          <a href="http://www.gnu.org/software/libtool/">libtool</a>
359       
360</li>
361       
362<li> 
363          zlib匀发包 (stable version &gt;= 1.2.0)
364        </li>
365       
366<li> 
367          lzo匀发包 (stable version &gt;= 2.0)
368        </li> 
369     
370</ul>
371<p>劂果已经满足了䞊述先决条件可以䜿甚<span class="codefrag">build.xml</span> 
372      文件并把其䞭的<span class="codefrag">compile.native</span>眮䞺
373      <span class="codefrag">true</span>这样就可以生成hadoop本地库</p>
374<p>
375<span class="codefrag">$ ant -Dcompile.native=true &lt;target&gt;</span>
376</p>
377<p>因䞺䞍是所有甚户郜需芁Hadoop本地库所以默讀情况䞋hadoop䞍生成该库。
378      </p>
379<p>䜠可以圚䞋面的路埄查看新生成的hadoop本地库</p>
380<p>
381<span class="codefrag">$ build/native/&lt;platform&gt;/lib</span>
382</p>
383<p>其䞭&lt;platform&gt;是䞋列系统属性的组合
384      <span class="codefrag">${os.name}-${os.arch}-${sun.arch.data.model}</span>䟋劂
385      Linux-i386-32。</p>
386<a name="N10109"></a><a name="%E6%B3%A8%E6%84%8F"></a>
387<h3 class="h4">泚意</h3>
388<ul>
389         
390<li>
391            圚生成hadoop本地库的目标平台䞊<strong>必须</strong> å®‰è£…了zlib和lzo匀发包䜆是劂果䜠只垌望䜿甚其䞭䞀䞪的话圚郚眲时安装其䞭任䜕䞀䞪郜是足借的。
392          </li>
393         
394<li>
395                  圚目标平台䞊生成以及郚眲hadoop本地库时郜需芁根据32/64䜍jvm选取对应的32/64䜍zlib/lzo蜯件包。
396          </li>
397       
398</ul>
399</div>
400<!--DCCOMMENT:diff begin-->
401   
402<a name="N1011F"></a><a name="%E4%BD%BF%E7%94%A8DistributedCache+%E5%8A%A0%E8%BD%BD%E6%9C%AC%E5%9C%B0%E5%BA%93"></a>
403<h2 class="h3"> äœ¿ç”šDistributedCache 加蜜本地库</h2>
404<div class="section">
405<p>甚户可以通过
406      <a href="mapred_tutorial.html#DistributedCache">DistributedCache</a>
407      加蜜本地共享库并<em>分发</em>和建立库文件的<em>笊号铟接</em>。
408      </p>
409<p>这䞪䟋子描述了劂䜕分发库文件并圚从map/reduce任务䞭装蜜库文件。
410      </p>
411<ol>
412     
413<li>銖先拷莝库文件到HDFS。<br>
414     
415<span class="codefrag">bin/hadoop fs -copyFromLocal mylib.so.1 /libraries/mylib.so.1</span>
416     
417</li>
418     
419<li>启劚䜜䞚时包含以䞋代码<br>
420     
421<span class="codefrag"> DistributedCache.createSymlink(conf); </span> 
422<br>
423     
424<span class="codefrag"> DistributedCache.addCacheFile("hdfs://host:port/libraries/mylib.so.1#mylib.so", conf);
425      </span>
426     
427</li>
428     
429<li>map/reduce任务䞭包含以䞋代码<br>
430     
431<span class="codefrag"> System.loadLibrary("mylib.so"); </span>
432     
433</li>
434     
435</ol>
436</div>
437 
438</div>
439<!--+
440    |end content
441    +-->
442<div class="clearboth">&nbsp;</div>
443</div>
444<div id="footer">
445<!--+
446    |start bottomstrip
447    +-->
448<div class="lastmodified">
449<script type="text/javascript"><!--
450document.write("Last Published: " + document.lastModified);
451//  --></script>
452</div>
453<div class="copyright">
454        Copyright &copy;
455         2007 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
456</div>
457<!--+
458    |end bottomstrip
459    +-->
460</div>
461</body>
462</html>
Note: See TracBrowser for help on using the repository browser.