eclipse下進行mapreduce程序的開發調試,需要安裝Hadoop eclipse插件,如果hadoop解壓包下存在{hadoop_home}\contrib\eclipse-plugin\目錄,則可以直接將其中的eclipse插件拷貝至eclipse\plugins目錄,重啟eclipse即可,若不存在此文件夾,則需要自己編譯得到插件包。
本人只實驗完成了windows下的hadoop eclipse 插件編譯過程,步驟如下
1、將hadoop解壓。比如:D:\hadoop-1.0.3。
2、進入D:\hadoop-1.0.3\src\contrib目錄。將build-contrib.xml復制到D:\hadoop-1.0.3\src\contrib\eclipse-plugin目錄下。
3、修改build-contrib.xml文件:
將hadoop.root改為hadoop解壓目錄。
<property name=”hadoop.root” location=” D:\hadoop-1.0.3″/>
在下面添加如下兩行:Eclipse安裝根目錄,和hadoop版本。
<property name=”eclipse.home” location=”D:\eclipse”/>
<property name=”version” value=”1.0.3″/>
4、在D:\hadoop-1.0.3下創建build文件夾,將hadoop-core-1.0.3.jar復制進來,並將以下jar包復制進來:commons-configuration-1.6.jar、commons-httpclient-3.0.1.jar、commons-lang-2.4.jar、jackson-core-asl-1.8.8.jar、jackson-mapper-asl-1.8.8.jar.
5、在D:\hadoop-1.0.3\build目錄下創建D:\hadoop-1.0.3\build\ivy\lib\Hadoop\common目錄並將commons-cli-1.2.jar復制到該目錄下。
6、修改 D:\hadoop-1.0.3\src\contrib\eclipse-plugin下的build.xml文件
<target name=”jar” depends=”compile” unless=”skip.contrib”>
<mkdir dir=”${build.dir}/lib”/>
<copy file=”${hadoop.root}/build/hadoop-core-${version}.jar” tofile=”${build.dir}/lib/hadoop-core.jar” verbose=”true”/>
<copy file=”${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar” todir=”${build.dir}/lib” verbose=”true”/>
《--以下為新增加內容--》
<copy file=”${hadoop.root}/build/commons-configuration-1.6.jar” todir=”${build.dir}/lib” verbose=”true”/>
<copy file=”${hadoop.root}/build/commons-httpclient-3.0.1.jar” todir=”${build.dir}/lib” verbose=”true”/>
<copy file=”${hadoop.root}/build/commons-lang-2.4.jar” todir=”${build.dir}/lib” verbose=”true”/>
<copy file=”${hadoop.root}/build/jackson-core-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
<copy file=”${hadoop.root}/build/jackson-mapper-asl-1.8.8.jar” todir=”${build.dir}/lib” verbose=”true”/>
<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>
7、build.xml還需要修改以下內容:
<import file="build-contrib.xml"/> //改為使用當前目錄下build-contrib.xml
另外找到<path id="classpath">標簽,下面加入<pathelement location="${hadoop.root}/hadoop-core-1.1.2.jar"/>
8、修改:MANIFEST.MF文件。目錄:D:\hadoop-1.0.3\src\contrib\eclipse-plugin\META-INF
Bundle-ClassPath那一欄加入如下信息:
Bundle-ClassPath: classes/,
lib/hadoop-core.jar,
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/commons-jackson-core-asl-1.8.8.jar,
lib/commons-jackson-mapper-asl-1.8.8.jar
9、在控制台切換到目錄D:\hadoop-1.0.3\src\contrib\eclipse-plugin,使用Ant進行編譯。
10、最後生成的結果會在D:\hadoop-1.0.3\build\contrib\eclipse-plugin下面。
更多Hadoop相關信息見Hadoop 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=13