标签: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 zhu
eclipse.home = /opt/myeclipse-2013
version = 1.2.1
#add by jack zhu
output.. = bin/
bin.includes = META-INF/,plugin.xml,resources/,classes/,classes/,lib/
plugin.xml, resources/, classes/, classes/, lib/该文件需修改三处,参考如下,其中修改的地方均位于两个“<!--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.0 Bundle-ManifestVersion: 2 Bundle-Name: MapReduce Tools for Eclipse Bundle-SymbolicName: org.apache.hadoop.eclipse;singleton:=true Bundle-Version: 0.18 Bundle-Activator: org.apache.hadoop.eclipse.Activator Bundle-Localization: plugin Require-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.logging Eclipse-LazyStart: true Bundle-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.jar Bundle-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
标签:des style blog http io color ar os 使用
原文地址:http://blog.csdn.net/zhu_xun/article/details/41080007