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

hadoop-1.0.4-eclipse-plunge.jar 编译。千辛万苦,终于是出来了。下面的我的有些还是有点小区别,但是大体还是一样的

2014-04-13 21:41 671 查看


编译hadoop1.0.4中eclipse-plugin的jar包

胖叔提醒~转发请注明文章出处:http://www.cnblogs.com/njuduyu/articles/2991657.html
今天准备做hadoop的第一个课程作业,首先是要配一下eclipse,按照网上以及教材上的方法,首先要安装eclipse,然后在里面安装插件。
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包。
在这里我们有两种方式:1)ant方式;2)在eclipse里面做。我会在最后,分别给出这两种做法的原始链接。在本文中,我采用第一种,除了介绍安装过程之外,还会介绍我所遇到的问题。
一共分为四步(注意,与文章最后参考链接里面的略有不同)

第一步:编辑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]/article/2777162.html
[3]/article/5813317.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: