一、根據hadoop版本下載相應jar包。我用的是hadoop-1.0.3,因此下載的是hadoop-eclipse-plugin-1.0.3.jar版本。html
http://pan.baidu.com/share/link?shareid=2598441536&uk=3709331609&fid=2470815234java
二、解壓jar包,在Eclipse中Import導入hadoop-eclipse-plugin-1.0.3-src文件夾,導進去在Eclipse中個人項目名稱爲MapReduceTools。(hadoop-eclipse-plugin-1.0.3-src爲hadoop-eclipse-plugin-1.0.3.jar解壓後所得文件夾)apache
三、把hadoop-eclipse-plugin-1.0.3-src文件夾下的build-contrib.xml文件拷貝到MapReduceTools項目根目錄底下。app
四、修改build-contrib.xmlless
找到<property name="hadoop.root" location="${root}/../../../"/>修改location爲hadoop的實際解壓目錄eclipse
例如個人hadoop實際解壓目錄爲:E:\qjay\hadoop\src\hadoop-1.0.3maven
則修改成:<property name="hadoop.root" location="E:/qjay/hadoop/src/hadoop-1.0.3"/>ide
查找<property name="eclipse.home" location="Eclipse安裝目錄"/>oop
<property name="version" value="Hadoop安裝版本"/>,若是沒有本身添加ui
例如個人爲:<property name="eclipse.home" location="E:/eclipse"/>
<property name="version" value="1.0.3"/>
五、修改build.xml
找到<import file="../build-contrib.xml"/>,改成<import file="build-contrib.xml"/>
由於這個咱們已經將build-contrib.xml文件放到MapReduceTools項目的根目錄底下了。
六、添加hadoop-core的jar包
找到<path id="classpath">,在下面添加 <pathelement location="${hadoop.root}/hadoop-core-1.0.3.jar"/>
「hadoop-core-1.0.3.jar」根據本身的版本可能會有所不一樣,能夠到${hadoop.root}/下邊去找到相應的jar包。個人${hadoop.root}爲「E:\qjay\hadoop\src\hadoop-1.0.3」就是hadoop的實際解壓目錄。
七、複製E:\qjay\hadoop\src\hadoop-1.0.3\hadoop-core-1.0.3.jar 到E:\qjay\hadoop-eclipse-plugin\hadoop-eclipse-plugin-1.0.3-src\eclipse-plugin\build\hadoop-core-1.0.3.jar;
複製E:\qjay\hadoop\src\hadoop-1.0.3\lib\commons-cli-1.2.jar到E:\qjay\hadoop-eclipse-plugin\hadoop-eclipse-plugin-1.0.3-src\eclipse-plugin\build\ivy\lib\Hadoop\common\commons-cli-1.2.jar,
若是上述目錄沒有則新建一下。
八、修改build.xml
<!-- Override jar target to specify manifest -->
<target name="jar" depends="compile" unless="skip.contrib">
<mkdir dir="${build.dir}/lib"/>
<!--此處個人${build.dir}爲E:\qjay\hadoop\src\hadoop-1.0.3\build\contrib\eclipse-plugin-->
<copy file="${hadoop.root}/hadoop-core-1.0.3.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>
<!--由於${hadoop.root}爲「E:\qjay\hadoop\src\hadoop-1.0.3。因此此處「${hadoop.root}/hadoop-core-1.0.3.jar」會由於版本的不一樣而不一樣,咱們能夠到hadoop的安裝目錄下(${hadoop.root})找到相應目錄下的相應jar包,後邊狀況-加粗的幾行狀況類似,依次類推。->
<copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/><!--windoop-->
<jar
jarfile="${build.dir}/hadoop-${name}-${version}.jar"
manifest="${root}/META-INF/MANIFEST.MF">
<fileset dir="${build.dir}" includes="classes/ lib/"/>
<fileset dir="${root}" includes="resources/ plugin.xml"/>
</jar>
</target>
九、修改MANIFEST.MF文件(在E:\qjay\hadoop-eclipse-plugin\hadoop-eclipse-plugin-1.0.3-src\eclipse-plugin\META-INF目錄下)
「Bundle-ClassPath」這一欄加入以下信息:
lib/commons-cli-1.2.jar,lib/commons-configuration-1.6.jar,
lib/commons-httpclient-3.0.1.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.8.8.jar,
lib/jackson-mapper-asl-1.8.8.jar
(咱們加入的這些信息中,相應jar會根據版本不一樣而變化,能夠直接將上邊第8條加入的<copy>dsfffffffffffffffff</copy>語句中對應的jar包名拷貝過來。)
十、在Eclipse中運行MapReduceTools項目。(鼠標選中build.xml文件,單擊右鍵選擇Run As---->Ant Build)
若是出現如下信息:
compile:
[echo] contrib: eclipse-plugin
[javac] E:\qjay\hadoop-eclipse-plugin\hadoop-eclipse-plugin-1.0.3-src\eclipse-plugin\build.xml:61: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
十一、則修改build.xml
<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
將<javac>標籤中加入includeantruntime="on"
Eg:
<target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">
<javac
encoding="${build.encoding}"
srcdir="${src.dir}"
includes="**/*.java"
destdir="${build.classes}"
debug="${javac.debug}" includeantruntime="on">
<classpath refid="classpath"/>
</javac>
</target>
從新編譯,控制檯打印信息爲如下:
Buildfile: E:\qjay\hadoop-eclipse-plugin\hadoop-eclipse-plugin-1.0.3-src\eclipse-plugin\build.xml
[echo] E:\qjay\hadoop\src\hadoop-1.0.3\build\contrib\eclipse-plugin
check-contrib:
init:
[echo] contrib: eclipse-plugin
[echo] E:\qjay\hadoop\src\hadoop-1.0.3\build\contrib\eclipse-plugin
init-contrib:
ivy-download:
[get] Getting: http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.1.0/ivy-2.1.0.jar
[get] To: E:\qjay\hadoop\src\hadoop-1.0.3\ivy\ivy-2.1.0.jar
[get] Not modified - so not downloaded
ivy-probe-antlib:
ivy-init-antlib:
ivy-init:
[ivy:configure] :: Ivy 2.1.0 - 20090925235825 :: http://ant.apache.org/ivy/ ::
[ivy:configure] :: loading settings :: file = E:\qjay\hadoop\src\hadoop-1.0.3\ivy\ivysettings.xml
ivy-resolve-common:
[ivy:resolve] :: resolving dependencies :: org.apache.hadoop#eclipse-plugin;working@lango-PC
[ivy:resolve] confs: [common]
[ivy:resolve] found commons-logging#commons-logging;1.0.4 in maven2
[ivy:resolve] found log4j#log4j;1.2.15 in maven2
[ivy:resolve] :: resolution report :: resolve 78ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| common | 2 | 0 | 0 | 0 || 2 | 0 |
---------------------------------------------------------------------
ivy-retrieve-common:
[ivy:retrieve] :: retrieving :: org.apache.hadoop#eclipse-plugin [sync]
[ivy:retrieve] confs: [common]
[ivy:retrieve] 0 artifacts copied, 2 already retrieved (0kB/16ms)
[ivy:cachepath] DEPRECATED: 'ivy.conf.file' is deprecated, use 'ivy.settings.file' instead
[ivy:cachepath] :: loading settings :: file = E:\qjay\hadoop\src\hadoop-1.0.3\ivy\ivysettings.xml
compile:
[echo] contrib: eclipse-plugin
jar:
BUILD SUCCESSFUL
Total time: 1 second
十二、編譯成功後在E:\qjay\hadoop\src\hadoop-1.0.3\build\contrib\eclipse-plugin文件夾下產生hadoop-eclipse-plugin-1.0.3.jar文件(根據本身版本不一樣可能生成的jar包名稱有差別)。將hadoop-eclipse-plugin-1.0.3.jar拷貝到E:\eclipse\plugins下(Eclipse安裝目錄下的plugins文件夾下)。
1三、重啓Eclipse,打開Windows----->Open Perspective----->Other------->若是有Map/Reduce則成功。
Eg:
在編譯時我主要參考的是這幾位前輩的配置經驗:
二、http://www.360doc.com/content/13/0727/22/13159363_303018432.shtml
三、http://blog.csdn.net/arbel/article/details/7674750
四、http://www.oschina.net/question/565065_113586
五、http://www.oschina.net/question/256028_110890
六、http://www.oschina.net/question/256028_110890
對以上幾位前輩表示感謝,若是沒有大家的經驗我可能還要走不少彎路,謝謝!。