Hadoop eclipse插件编译与配置
来源:互联网 发布:新西兰生活 知乎 编辑:程序博客网 时间:2024/05/29 04:11
1.编译
首先说明,这里所用的hadoop版本为1.0.0。
hadoop的eclipse插件通过编译/src/contrib/eclipse-plugin
目录下的代码得到,但是直接编译得到的jar包因为缺少一些依赖库而不能直接使用,因此首先要进行一些修改然后再编译。
首先修改build.xml
,
<fileset dir="${hadoop.root}" includes="*.jar"/>
在末尾的target
标签中加入以下内容
<copy file="${hadoop.root}/lib/commons-configuration-1.6.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/jackson-core-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true" /><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true" /><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true" />
我还发现原本就存在的两个copy
也有问题:
<copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib" verbose="true"/>
因为我发现它们所指定的两个jar文件目录都不对,因此修改他们,让他们指向正确的目录:
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> <copy file="${hadoop.root}/lib/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib" verbose="true"/>
这个版本的hadoop使用了过期的API,可以在build.xml中的javac
标签中加入下面两行来在编译过程中显示关于未检查转换和过期API的警告详情,也可以不加,编译器依然会简单的警告。
<compilerarg value="-Xlint:unchecked"/><compilerarg value="-Xlint:deprecation"/>
然后修改META-INF/MANIFEST.MF
文件,将Bundle-ClassPath
属性修改为:
Bundle-ClassPath: classes/, lib/hadoop-core.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar,lib/jackson-core-asl-1.0.2.jar,lib/jackson-mapper-asl-1.0.2.jar,lib/commons-httpclient-3.0.1.jar
然后执行ant -Declipse.home=/usr/lib/eclipse -Dversion=1.0.0
来进行编译,其中Declipse.home
指定eclipse的安装目录,Dversion
指定hadoop的版本。
如果在输出中看到BUILD SUCCESSFUL
说明编译成功。如果编译过程中遇到错误,可以参考解决错误。
2.配置
生成的jar文件在hadoop-1.0.0/build/contrib/eclipse-plugin
目录下,将该jar包拷贝到eclipse的plugins目录下,重启eclipse。
然后Windows-》Show View-》Other-》MapReduce Tools-》Map/Reduce Locations-》New Hadoop Location,然后填写如下内容。
如果能通过Project Explorer看到HDFS上的文件,说明插件配置成功。
3.解决错误
我在编译的过程中出现错误说找不到package org.apache.hadoop.fs,这显然是由于没有正确的引用hadoop-core-1.0.0.jar
造成的,因此在上面将hadoop安装目录下的jar包全部加入classpath
解决了这个问题(看这里)。当然也可能遇到其他的问题,为了方便排查错误,附一张主要的依赖关系图和一些变量的值。
${hadoop.root}=/usr/lib/hadoop-1.0.0${root}=${basedir}=${hadoop.root}/src/contrib/eclipse-plugin${build.dir}=${hadoop.root}/build/contrib/eclipse-plugin${build.classes}=${build.dir}/classes${src.dir}=${root}/src/java
- Hadoop eclipse插件编译与配置
- hadoop 2.6 Eclipse 插件编译/配置/安装
- 编译hadoop-eclipse-plugin2x插件及eclipse配置hadoop
- 编译Eclipse hadoop插件
- Hadoop Eclipse插件编译
- 编译hadoop-eclipse插件
- Hadoop-Eclipse插件编译
- hadoop 编译eclipse 插件
- 编译Hadoop-Eclipse插件
- Hadoop Eclipse 插件配置
- eclipse配置hadoop插件
- eclipse配置Hadoop插件
- 编译hadoop的eclipse插件
- 编译hadoop eclipse插件 详解
- hadoop的eclipse插件编译
- 自编译hadoop eclipse 插件
- 编译hadoop eclipse插件 详解
- hadoop 编译生成eclipse插件
- c语言的正则表达式
- Java的并发
- Linux进程间通信——使用匿名管道 http://blog.csdn.net/ljianhui/article/details/10168031
- TCP/IP详解卷1 读书笔记:第八章 Traceroute程序
- HDU 2512 一卡通大冒险(dp)
- Hadoop eclipse插件编译与配置
- #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)我的第一个博客
- 面经问题选之Java SE基础部分
- 软件工程之宏观认识
- Putty和SSH Secure Shell简单设置
- 动态变量和静态变量的区别
- 【IOS 开发】Objective - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射
- hdu1061 Rightmost Digit
- 字符串S1是否可以由字符串S2通 过循环移位而得到