您的位置:首页 > 编程语言 > Java开发

编译eclipse hadoop插件

2015-10-03 00:00 567 查看
摘要: 编译eclipse hadoop插件

操作系统:ubuntu

hadoop版本:1.0.1

eclipse版本:eclipse Helios-SR2

直接通过hadoop 1.0.1掩码插件生成的eclipse插件是不能用的,因为少了一些jar包,所以需要手工修改src/contrib/eclipse-plugin目录下的build.xml文件和META-INF/MANIFEST.MF文件。

修改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"/>
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>

在这个基础上修改,修改后为

<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/ivy/lib/Hadoop/common/commons-configuration-1.6.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-lang-2.4.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/jackson-core-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/jackson-mapper-asl-1.8.8.jar"  todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-httpclient-3.0.1.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>

2. 修改META-INF/MANIFEST.MF文件

这是没修改前的

Bundle-ClassPath: classes/,lib/hadoop-core.jar

在这个基础上修改,修改后为

Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.8.8.jar,lib/jackson-mapper-asl-1.8.8.jar,lib/commons-httpclient-3.0.1.jar

注意要把build.xml中定义的所有jar包都加上,我就是一开始少写了lib/commons-cli-1.2.jar,导致使用是还是一直报Error:failure to login的错误,折腾了很久(被《hadoop技术内幕》这本书误导了)

3.编译生成插件jar包

命令行进入到hadoop安装目录下的src/contrib/eclipse-plugin目录下,输入以下命令:

ant -Declipse.home=/home/jason/eclipse -Dversion=1.0.2-SNAPSHOT

其中eclipse.home是用来指定eclipse的路径,version是Hadoop的版本号。

最后会在hadoop安装目录下的build/contrib/eclipse-plugin目录下看到生成的jar包,把它拷贝到eclipse的插件目录下即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息