《转载》hadoop cdh3u3 eclipse插件编译
2013-10-11 20:46
253 查看
1. 编译环境
操作系统:debian6 amd64,安装ant和maven2这两个java打包工具。hadoop:hadoop-0.20.2-cdh3u3.tar.gz
eclipse:eclipse-java-indigo-SR2-win32.zip
2. 编译hadoop
解压源码hadoop-0.20.2-cdh3u3.tar.gz并进入,执行ant,自动下载依赖并编译。
3. 编译eclipse plugin
解压eclipse。进入hadoop源码的src/contrib/eclipse-plugin目录下,执行:
ant -Declipse.home=/eclipse解压目录/ -Dversion=0.20.2-cdh3u3 jar。
4. 测试
在hadoop源码的build/contrib/eclipse-plugin中有hadoop-eclipse-plugin-0.20.2-cdh3u3.jar。拷贝至eclipse的plugins目录下,启动eclipse。 启动后报错:An internal error occurred during: "Connecting to DFS localhost".
查看eclipse错误日志,显示:
java.lang.NoClassDefFoundError: org/apache/hadoop/thirdparty/guava/common/collect/LinkedListMultimap
还有一个错误:
java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMappingException
说明eclipse找不到guava和jackson包。
5. 修复bug
首先,在hadoop源码的lib目录下拷贝出guava-r09-jarjar.jar,jackson-mapper-asl-1.5.2.jar包。5.1 方法一
把guava-r09-jarjar.jar,jackson-mapper-asl-1.5.2.jar中的字节码(org目录)解压至hadoop-eclipse-plugin-0.20.2-cdh3u3.jar的classes下。
5.2 方法二
把guava-r09-jarjar.jar,jackson-mapper-asl-1.5.2.jar放到hadoop-eclipse-plugin-0.20.2-cdh3u3.jar的lib目录下。
然后,修改该包META-INF目录下的MANIFEST.MF,将classpath修改为一下内容:
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/guava-r09-jarjar.jar,lib/jackson-mapper-asl-1.5.2.jar
方法二理论上可以,但我测试未成功。
相关文章推荐
- java静态代理
- 开发Struts 2项目遇到的一个问题,就是在struts-tags标签库下没有了s:datetimepicker标签的解决办法
- eclipse安装插件checkstyle
- JAVA GC垃圾收集器的分析
- java 生产者消费者问题
- 多线程实现的Java爬虫程序
- java中static变量和方存在内存什么区域
- java5新特性
- log4j配置及详解
- 二叉树实现java
- 新手如何使用Eclipse创建包并且调用import语句使用这个包
- 使用Spring提供的 MethodInvokingJobDetailFactoryBean 代理类调度定时器
- java实现文件导出和下载方法
- Struts2 + Spring + Hibernate 通用 Service 和 DAO
- Struts2 + Spring + Hibernate 通用 Service 和 DAO
- eclipse的安装与使用
- Java基础 异常处理总结
- java线程学习笔记
- java.lang.UnsatisfiedLinkError: ...Sample1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
- 用loadrunner11写java脚本小例子(java Vuser)