温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何重新编译hadoop源代码

发布时间:2021-12-08 11:40:05 来源:亿速云 阅读:153 作者:小新 栏目:云计算

小编给大家分享一下如何重新编译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/

如何重新编译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 <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

如何重新编译hadoop源代码

3、编译成功

4、hadoop-core.jar

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

如何重新编译hadoop源代码

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI