原博客地址: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