如何重新编译hadoop源代码

小编给大家分享一下如何重新编译hadoop源代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联主营卫滨网站建设的网络公司,主营网站建设方案,成都App制作,卫滨h5微信小程序定制开发搭建,卫滨网站营销推广欢迎卫滨等地区企业咨询

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/

如何重新编译hadoop源代码

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   String getEnumValues(Enum[] e) {

      [javac]                                         ^

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

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

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

      [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 v : e) {

      [javac]               ^

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

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

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

      [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”为“Enum”。

对第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

如何重新编译hadoop源代码

3、编译成功

4、hadoop-core.jar

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

如何重新编译hadoop源代码

以上是“如何重新编译hadoop源代码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享文章:如何重新编译hadoop源代码
文章来源:http://ybzwz.com/article/gsgecs.html