hadoop eclipse外掛程式產生

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   color   ar   os   使用   

hadoop eclipse外掛程式產生

做了一年的hadoop開發,還沒有自己主動產生過eclipse外掛程式,一直都是在網上下載別人的用,今天有時間,就把這段遺憾補回來,自己產生一下,廢話不說,開始了。

一、環境說明

本列中的hadoop eclipse外掛程式通過eclipse產生(未使用命令產生是因為用命令產生外掛程式過程中發生的一些問題,不容易查看和修改,用eclipse很直觀,方便出錯校正),其中hadoop版本為 1.2.1(stable版),作業系統為Centos,IDE為myeclipse 2013(用eclipse也一樣,沒區別)。以下的HADOOP_HOME表示hadoop的安裝目錄。


二、外掛程式產生

1.將$HADOOP_HOME/src/contrib/eclipse-plugin匯入eclipse工程。

本例中將/opt/hadoop-1.2.1/src/contrib/eclipse-plugin目錄匯入eclipse。


如添加完成後的項目名稱為“MapReduceTools”,如:



2.把hadoop-core-1.2.1.jar加入環境變數

右擊項目——>build path——>configure buildpath,將現有的hadoop-core jar包刪除(預設加入的包,已不在classpath中),然後將$HADOOP_HOME/hadoop-core-1.2.1.jar加入classpath。



3.修改各項設定檔:

(1).修改build.properties:

加入eclipse的安裝目錄和hadoop版本號碼,參考內如下

eclipse.home = 你的eclipse安裝目錄
version = 你的hadoop版本號碼

個人修改後的檔案內如如下:

#add by jack zhueclipse.home = /opt/myeclipse-2013version = 1.2.1#add by jack zhuoutput.. = bin/bin.includes = META-INF/,plugin.xml,resources/,classes/,classes/,lib/               plugin.xml,               resources/,               classes/,               classes/,               lib/

(2).修改build.xml:

該檔案需修改三處,參考如下,其中修改的地方均位於兩個“<!--add by zhu-->”標記的中間:

<project default="jar" name="eclipse-plugin">  <import file="../build-contrib.xml"/>  <path id="eclipse-sdk-jars">    <fileset dir="${eclipse.home}/plugins/">      <include name="org.eclipse.ui*.jar"/>      <include name="org.eclipse.jdt*.jar"/>      <include name="org.eclipse.core*.jar"/>      <include name="org.eclipse.equinox*.jar"/>      <include name="org.eclipse.debug*.jar"/>      <include name="org.eclipse.osgi*.jar"/>      <include name="org.eclipse.swt*.jar"/>      <include name="org.eclipse.jface*.jar"/>      <include name="org.eclipse.team.cvs.ssh2*.jar"/>      <include name="com.jcraft.jsch*.jar"/>    </fileset>   </path><!--add by zhu(1)--><path id="hadoop-lib-jars"><fileset dir="${hadoop.root}/"><include name="hadoop-*.jar"/></fileset></path><!--add by zhu-->  <!-- Override classpath to include Eclipse SDK jars -->  <path id="classpath">    <pathelement location="${build.classes}"/>    <pathelement location="${hadoop.root}/build/classes"/>    <path refid="eclipse-sdk-jars"/>  <!--add by zhu(2)-->  <path refid="hadoop-lib-jars"/>  <!--add by zhu-->  </path>  <!-- Skip building if eclipse.home is unset. -->  <target name="check-contrib" unless="eclipse.home">    <property name="skip.contrib" value="yes"/>    <echo message="eclipse.home unset: skipping eclipse plugin"/>  </target> <target name="compile" depends="init, ivy-retrieve-common" unless="skip.contrib">    <echo message="contrib: ${name}"/>    <javac     encoding="${build.encoding}"     srcdir="${src.dir}"     includes="**/*.java"     destdir="${build.classes}"     debug="${javac.debug}"     deprecation="${javac.deprecation}">     <classpath refid="classpath"/>    </javac>  </target>  <!-- Override jar target to specify manifest -->  <target name="jar" depends="compile" unless="skip.contrib">    <mkdir dir="${build.dir}/lib"/>  <!--add by zhu(3)-->    <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>  <copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/>  <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/>  <copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/>  <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>  <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib" verbose="true"/>  <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/>  <!--add by zhu-->    <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></project>
註:以上檔案內容可直接拷貝過去使用,沒有任何區別。

(3).修改META-INF/MANIFEST.MF檔案:

在該檔案中加入上面步驟(2)的第三步中加入的jar包:lib/hadoop-core.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

該檔案內容參考如下:

Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: MapReduce Tools for EclipseBundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=trueBundle-Version: 0.18Bundle-Activator: org.apache.hadoop.eclipse.ActivatorBundle-Localization: pluginRequire-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.jdt.launching, org.eclipse.debug.core, org.eclipse.jdt, org.eclipse.jdt.core, org.eclipse.core.resources, org.eclipse.ui.ide, org.eclipse.jdt.ui, org.eclipse.debug.ui, org.eclipse.jdt.debug.ui, org.eclipse.core.expressions, org.eclipse.ui.cheatsheets, org.eclipse.ui.console, org.eclipse.ui.navigator, org.eclipse.core.filesystem, org.apache.commons.loggingEclipse-LazyStart: trueBundle-ClassPath: classes/, lib/hadoop-core.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.jarBundle-Vendor: Apache Hadoop
註:以上檔案內容可直接拷貝過去使用,沒有任何區別。


4.在build.xml中執行ant進行編譯和打包:

在該頁面右擊——>Run As Ant Build


如果一切順利的話,ant 編譯打包完成後,將會在$HADOOP_HOME/contrib/eclipse-plugin目錄下產生hadoop-eclipse-plugin-1.2.1.jar



5.將剛產生的jar包放入eclipse的安裝目錄下的dropins目錄下,然後重啟eclipse

這時就可以建立Map/Reduce Project了



如果不想自己產生,可以下載我產生的hadoop eclipse 外掛程式:http://download.csdn.net/detail/u012875880/8154149

hadoop eclipse外掛程式產生

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.