重新编译hadoop源代码

hadoop-1.0.3源代码下载地址:

http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.3/

实验环境:

redhat版本

Red Hat Enterprise Linux Server release 6.5 (Santiago)

redhat中重新编译hadoop源代码。

1、从svn中迁出hadoop-1.0.3源代码

[hadoop@master  hadoop-p]$ svn co   http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.3/

113144_7vRB_870039.png

2、build.xml文件所在目录下编译hadoop

[hadoop@master  release-1.0.3]$ ant

编译报错: 类型参数? extends T不在类型变量E的范围内

详细错误信息:

compile:

       [echo] contrib: gridmix

      [javac] Compiling 31 source files to   /home/hadoop/hadoop-p/release-1.0.3/build/contrib/gridmix/classes

      [javac]   /home/hadoop/hadoop-p/release-1.0.3/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java:396:   错误: 类型参数? extends T不在类型变量E的范围内

      [javac]   private <T>   String getEnumValues(Enum<? extends T>[] e) {

      [javac]                                         ^

      [javac]   其中, T,E是类型变量:

      [javac]     T扩展已在方法   <T>getEnumValues(Enum<? extends T>[])中声明的Object

    [javac]       E扩展已在类 Enum中声明的Enum<E>

      [javac]   /home/hadoop/hadoop-p/release-1.0.3/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java:399:   错误: 类型参数? extends T不在类型变量E的范围内

      [javac]     for (Enum<?   extends T> v : e) {

      [javac]               ^

      [javac]   其中, T,E是类型变量:

      [javac]     T扩展已在方法   <T>getEnumValues(Enum<? extends T>[])中声明的Object

      [javac]     E扩展已在类 Enum中声明的Enum<E>

      [javac] : 某些输入文件使用了未经检查或不安全的操作。

      [javac] : 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

      [javac] 2 个错误

 

BUILD FAILED

 

解决方案:

参考http://5282981.blog.51cto.com/5272981/965249解决的。

具体解决过程:

修改

/home/hadoop/hadoop-p/release-1.0.3/src/contrib/gridmix/src/java/org/apache/hadoop/mapred/gridmix/Gridmix.java文件的第396行“Enum<? extends T>”为“Enum<? extends T>”。

对第399行也做同样的修改。

重新编译hadoop源代码:

compile:

       [echo] contrib: vaidya

      [javac] Compiling 14 source files to   /home/hadoop/hadoop-p/release-1.0.3/build/contrib/vaidya/classes

      [javac] :   /home/hadoop/hadoop-p/release-1.0.3/src/contrib/vaidya/src/java/org/apache/hadoop/vaidya/statistics/job/JobStatistics.java使用了未经检查或不安全的操作。

      [javac] : 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

 

compile-ant-tasks:

      [javac] Compiling 5 source files to /home/hadoop/hadoop-p/release-1.0.3/build/ant

      [javac] 警告:   [options] 未与 -source   1.6 一起设置引导类路径

      [javac] 1 个警告

 

compile:

 

BUILD SUCCESSFUL

Total time: 37 seconds

 

113325_z3TK_870039.png

3、编译成功

4、hadoop-core.jar

自编译生成的hadoop core jar包在release-1.0.3\build中。

113416_wz1H_870039.png

 

 

 


转载于:https://my.oschina.net/HIJAY/blog/416119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值