编译hadoop 中eclipse-plugin的jar包

来源:互联网 发布:淘宝 7个小白 编辑:程序博客网 时间:2024/03/28 18:21

原博客地址:http://www.cnblogs.com/njuduyu/archive/2013/03/31/2991657.html

eclipse的安装就不必累赘,我下载的是这一个:eclipse-SDK-4.2.2-linux-gtk.tar.gz,解压就行了。

教材中说,在hadoop安装包contrib/目录下有一个插件hadoop-*-eclipse-plugin.jar,后面还有一些后续的操作。可是,在hadoop1.0.4的版本中,根本没有这个jar,所以我们要想办法自己编译咯。

这当中,参考了网上一些同学的做法,虽然中间遇到一些小问题,但最终还是编译出来一个jar包,我按照自己的步骤来是没问题的,最后放在eclipse中跑也没出差子,可是是我怕过会就忘了中间遇到的小坑,所以先记下来:

虽然我在hadoop安装包contrib/目录下没有找到jar包,但是呢,我在/home/hadoop/hadoop_installs/hadoop-1.0.4/src/contrib/下找到了eclipse-plugin这个文件夹,我们下面要做的就是将这里面的东西编译成jar包。

分别给出这两种做法的原始链接。在本文中,我采用第一种,除了介绍安装过程之外,还会介绍我所遇到的问题。

一共分为四步(注意,与文章最后参考链接里面的略有不同)

 

第一步:编辑home/hadoop/hadoop_installs/hadoop-1.0.4/src/contrib/下的build-contrib.xml文件:

注:上面蓝色的路径,是看官电脑上hadoop的安装目录。

我们要在这个文件里面添加version和eclipse.home两个属性,在后面我们会用到这两个变量:

关于eclipse.home,我想大家一定会记得改成自己的值吧。

这里要记得,在命令行中用sudo哦,不然有可能会该不成。

第二步:编辑home/hadoop/hadoop_installs/hadoop-1.0.4/src/contrib/eclipse-plugin/下的build.xml文件:

这个文件要改动几个地方:

1)添加hadoop-jars path,并同时加入到classpath中:

2)设置includeantruntime=on,防止compile时报warning:

3) 添加将要打包到plugin中的第三方包列表:

为了方便大家修改,把这段话复制过来:

复制代码
    <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"/>
复制代码

这三个地方改完了,那么就进行我们的第三步。

 

第三步:修改MANIFEST.MF文件。

注:这步在之前参考的网页里面没有,但事实证明,为了避免不必要的麻烦,最好按我说的改一下。

文件路径是:/home/hadoop/hadoop_installs/hadoop-1.0.4/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF

主要是修改Bundle-ClassPath

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

修改好了之后,进行第四步。

 

第四步:执行ant命令:

注意:要吧目录切换到home/hadoop/hadoop_installs/hadoop-1.0.4/src/contrib/eclipse-plugin/下执行ant命令。

直接输入ant,结果提示我没有安装这个指令,这个时候,直接安装就行了:

$ sudo apt-get install ant1.7

安装完就行了,接着就是执行,结果在执行的时候,不仅出错了,而且我发现系统的jdk变成openjdk了,这让我很不爽啊。

怎么改呢?

$ sudo update-alternatives --install /usr/bin/java/usr/java/jdk1.6.0_43/bin/java 300 
$ sudo update-alternatives --install /usr/bin/javac javac/usr/java/jdk1.6.0_43/bin/javac 300 
$ sudo update-alternatives --config java 
$ sudo update-alternatives --config javac

其中绿色的部分,看官要改成自己的Jdk安装路径。如果你的系统中安装了其他的jdk,在执行最后两条指令的时候,系统会提示出来,然后作出你的选择就行了。

这个时候Jdk又改回来了,好爽。

接着,就是看看ant错在哪里了。错误提示说error while writing org.apache.hadoop.eclipse.Activator: could not create parent directories.

靠,原来是没办法建目录。加个sudo,解决。

此时,在hadoop安装目录下的contrib/eclipse-plugin中,就可以看到这个jar包啦!

至此,jar包编译完毕。下面列出参考的几个链接:

[1]http://chqz1987.blog.163.com/blog/static/51438311201301511853170/

[2]http://blog.csdn.net/kurama_sai/article/details/8602460

[3]http://www.cnblogs.com/blogoflee/archive/2012/03/14/2395645.html


0 0
原创粉丝点击