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.youkuaiyun.com/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如下。
- <propertyname="hadoop.root"location="/home/himiko/Downloads/hadoop-1.0.4"/>
- <propertyname="eclipse.home"location="/home/himiko/ProgramFiles/eclipse"/>
- <propertyname="version"value="1.0.4"/>
注意这几个按照你自己的写!!!!
- <projectname="hadoopbuildcontrib"xmlns:ivy="antlib:org.apache.ivy.ant">
- <propertyname="name"value="${ant.project.name}"/>
- <propertyname="root"value="${basedir}"/>
- <propertyname="hadoop.root"location="/home/himiko/Downloads/hadoop-1.0.4"/>
- <propertyname="eclipse.home"location="/home/himiko/ProgramFiles/eclipse"/>
- <propertyname="version"value="1.0.4"/>
7、buid.xml修改如下
找到这一部分,修改(红字为修改的)
- <targetname="jar"depends="compile"unless="skip.contrib">
- <mkdirdir="${build.dir}/lib"/>
- <copyfile="${hadoop.root}/hadoop-core-${version}.jar"tofile="${build.dir}/lib/hadoop-core.jar"verbose="true"/>
- <copyfile="build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar"todir="${build.dir}/lib"verbose="true"/>
- <spanstyle="color:#ff0000;"><copyfile="${hadoop.root}/lib/commons-configuration-1.6.jar"tofile="${build.dir}/lib/commons-configuration-1.6.jar"verbose="true"/>
- <copyfile="${hadoop.root}/lib/commons-httpclient-3.0.1.jar"tofile="${build.dir}/lib/commons-httpclient-3.0.1.jar"verbose="true"/>
- <copyfile="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar"tofile="${build.dir}/lib/jackson-core-asl-1.8.8.jar"verbose="true"/>
- <copyfile="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar"tofile="${build.dir}/lib/jackson-mapper-asl-1.8.8.jar"verbose="true"/>
- <copyfile="${hadoop.root}/lib/commons-lang-2.4.jar"tofile="${build.dir}/lib/commons-lang-2.4.jar"verbose="true"/></span>
- <jar
- jarfile="${build.dir}/hadoop-${name}-${version}.jar"
- manifest="${root}/META-INF/MANIFEST.MF">
- <filesetdir="${build.dir}"includes="classes/lib/"/>
- <filesetdir="${root}"includes="resources/plugin.xml"/>
- </jar>
- </target>
注意红字那行是加入的
- projectdefault="jar"name="eclipse-plugin">
- <importfile="build-contrib.xml"/>
最后在该文件结束之前加上如下代码
- <pathid="hadoop-jars">
- <filesetdir="${hadoop.root}/">
- <includename="hadoop-*.jar"/>
- </fileset>
- </path>
8、复制两个没有的jar包到解压出hadoop的文件夹下,名字和路径如下,没有文件夹就新建,build就是新建的文件夹…………
commons那个jar包在解压出来的lib中
9、修改META-INF中的文件如下
- Bundle-ClassPath:classes/,
- lib/hadoop-core.jar,
- lib/commons-cli-1.2.jar,
- lib/commons-configuration-1.6.jar,
- lib/jackson-core-asl-1.8.8.jar,
- lib/commons-httpclient-3.0.1.jar,
- lib/jackson-mapper-asl-1.8.8.jar,
- lib/commons-lang-2.4.jar,
build.xml上右键,run as ant Build
10、编译成功后
将这个jar包拷贝到Eclipse插件目录下
配置好的如图所示: