• 《转载》hadoop cdh3u3 eclipse插件编译


    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

    方法二理论上可以,但我测试未成功。

  • 相关阅读:
    文件上传
    data.push({name:'a',value:'a'});
    es数据迁移脚本(python)
    es修改数据类型
    SqlServer应用程序的高级Sql注入
    ASP.NET中如何防范SQL注入式攻击
    AJAX.NET框架构建Lookup服务器控件
    asp.net 读写 XML 小结
    Global.asax 文件
    ajaxpro.2.dll 简单应用
  • 原文地址:https://www.cnblogs.com/riverphoenix/p/2481034.html
Copyright © 2020-2023  润新知