Hadoop1.0.4 连接假象,ant自己编译

来源:互联网 发布:速成韩语知乎 编辑:程序博客网 时间:2024/05/22 15:28

1.纠结一下午时间。自己编译了hadoop1.0.4 的eclips插件 eclipse版本4.2.2.

2.eclipse安装好自己编译的插件后,连接配置的hadoop。结果Map/Reduce Location 下面的列表无反应,什么都没有,貌似连不上但是又不报通信异常或者拒绝访问之类错误

实际上已经连上了。闲话少说,下面说下过程


首先编译整个插件

linux下面打开eclipse,新建一个eclipse插件开发的空工程

到hadoop里面找到src下面的

[root@zcw hadoop]# cd src

src/contrib/eclipse-plugin目录里面的所有东西,对应拷贝到工程下面,注意我们要用到ant脚本构建

所以最重要的两个文件build.xml,和contrib-build.xml


参考http://blog.csdn.net/yundixiaoduo/article/details/7451753

其实直接看这位大哥的blog即可,说的很详细,测试也OK。写下来只是我想记录下~

1、解压Hadoop 1.0.4。不知到为什么现在源代码里边build好的contrib已经没有eclipse的插件了,得自己编译……

2、在Eclipse里边新建一个java project,普通的就行


3、把解压出来的Hadoop里面的scr下 eclipse-plugin全部拖进去


对,就是这些,直接拖到刚才新建的工程中

4、上一级目录里面的build.xml也要放到工程里面~


5、配置编译路径,因为我是ubuntu的系统,所以直接配置如下,在项目下右键Build path->Configure Build Path->Add Library->Eclipse Plugin Dependencies->next->finish


6、build-contrib.xml如下。

[html] view plaincopy
  1. <property name="hadoop.root" location="/home/himiko/Downloads/hadoop-1.0.4"/>  
  2.   <property name="eclipse.home" location="/home/himiko/ProgramFiles/eclipse"/>  
  3.   <property name="version" value="1.0.4"/>  

注意这几个按照你自己的写!!!!


[html] view plaincopy
  1. <project name="hadoopbuildcontrib" xmlns:ivy="antlib:org.apache.ivy.ant">  
  2.   
  3.   <property name="name" value="${ant.project.name}"/>  
  4.   <property name="root" value="${basedir}"/>  
  5.  <property name="hadoop.root" location="/home/himiko/Downloads/hadoop-1.0.4"/>  
  6.   <property name="eclipse.home" location="/home/himiko/ProgramFiles/eclipse"/>  
  7.   <property name="version" value="1.0.4"/>  


7、buid.xml修改如下

找到这一部分,修改(红字为修改的)

[html] view plaincopy
  1. <target name="jar" depends="compile" unless="skip.contrib">  
  2.   <mkdir dir="${build.dir}/lib"/>  
  3.   <copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/>  
  4.   <copy file="build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"  todir="${build.dir}/lib" verbose="true"/>  
  5.     <span style="color:#ff0000;"><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" tofile="${build.dir}/lib/commons-configuration-1.6.jar" verbose="true"/>  
  6.     <copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" tofile="${build.dir}/lib/commons-httpclient-3.0.1.jar" verbose="true"/>  
  7.     <copy file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-core-asl-1.8.8.jar" verbose="true"/>  
  8.     <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" tofile="${build.dir}/lib/jackson-mapper-asl-1.8.8.jar" verbose="true"/>  
  9.     <copy file="${hadoop.root}/lib/commons-lang-2.4.jar" tofile="${build.dir}/lib/commons-lang-2.4.jar" verbose="true"/></span>  
  10.     <jar  
  11.     jarfile="${build.dir}/hadoop-${name}-${version}.jar"  
  12.     manifest="${root}/META-INF/MANIFEST.MF">  
  13.     <fileset dir="${build.dir}" includes="classes/ lib/"/>  
  14.     <fileset dir="${root}" includes="resources/ plugin.xml"/>  
  15.   </jar>  
  16. </target>  


注意红字那行是加入的

[html] view plaincopy
  1. project default="jar" name="eclipse-plugin">  
  2.   
  3. <import file="build-contrib.xml"/>  
注意红字部分为修改的

最后在该文件结束之前加上如下代码

[html] view plaincopy
  1. <path id="hadoop-jars">  
  2.         <fileset dir="${hadoop.root}/">  
  3.           <include name="hadoop-*.jar"/>  
  4.         </fileset>   
  5.  </path>    

8、复制两个没有的jar包到解压出hadoop的文件夹下,名字和路径如下,没有文件夹就新建,build就是新建的文件夹…………

commons那个jar包在解压出来的lib中


9、修改META-INF中的文件如下

[html] view plaincopy
  1. Bundle-ClassPath: classes/,  
  2.  lib/hadoop-core.jar,  
  3.  lib/commons-cli-1.2.jar,  
  4.  lib/commons-configuration-1.6.jar,  
  5.  lib/ jackson-core-asl-1.8.8.jar,  
  6.  lib/commons-httpclient-3.0.1.jar,  
  7.  lib/jackson-mapper-asl-1.8.8.jar,  
  8.  lib/commons-lang-2.4.jar,  
  9.    


build.xml上右键,run as ant Build

10、编译成功后

将这个jar包拷贝到Eclipse插件目录下

配置好的如图所示:



原创粉丝点击