查看: 298|回复: 1

编辑Hadoop源码时遇到的问题及解决

[复制链接]
论坛徽章:
0
发表于 2019-6-3 15:50 | 显示全部楼层 |阅读模式

Hadoop 源码

本帖最后由 天翊 于 2019-6-3 20:11 编辑

1、protocolbuffers项目已经转移,目前googlecode所有托管的代码已经迁移至github,所以项目下载地址在:
https://github.com/protocolbuffers/protobuf/releases/tag/v3.8.0


2、编译Hadoop源码时,会出现报错,提示注释中的“List<String>"这种泛型无法识别的情况。
出现的报错信息类似于:
error001.png
意思是将注释中的内容当成代码进行编译了,还提示类型找不到。
这种情况下的解决办法是:
在pom.xml中找到plugins标签在其中添加下面的内容,source和target需要1.5以上,我用的JDK是1.8,所以都改成1.8就可以正常编译源码了。
<pluginManagement>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId>        <version>3.0</version>        <configuration>          <source>1.5</source>          <target>1.5</target>        </configuration>      </plugin>    </plugins></pluginManagement>

添加完再次执行就可以过这些错误,继续编译了:
clipboard.png

3、注意:编译时请不要使用JDK1.8 这个版本编译时会报错。
error2.png

如果一定要使用这个版本的JDK就像我一样,可以这样修改:
eooro3.png
修改后就可以快乐的继续编译了。。

4、快乐一会之后再次报错:
error4.png
这次是说用的protocol版本太高了。。。。。
卸载老版本后
rm /usr/local/bin/protoc
下载对应版本文件:
https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0
再次编译安装

error5.png
5、困难重重
虽然从SVN下载的是版的Hadoop源码,但是编译时还是出现问题:
error6.png

根据提示发现是这个地址的tomcat已经不提供了。修改为可以找到的7版本的tomcat。
修改的是hadoop-hdfs-https这个目录下面的pom.xml
6、最终胜利
欧耶~~~~~
success.png


回复

使用道具 举报

论坛徽章:
12
Oracle研习者初级
日期:2014-09-19 14:07:42Oracle研习者高级
日期:2019-07-25 14:10:03python徽章
日期:2018-12-20 15:14:57redis徽章
日期:2018-06-21 17:16:11mysql徽章
日期:2017-12-22 16:01:10python徽章
日期:2017-08-17 17:09:36mysql徽章
日期:2017-05-25 16:50:35Mycat徽章
日期:2017-02-23 15:56:04大型分布式徽章
日期:2017-02-16 16:49:55mysql徽章
日期:2016-07-14 11:09:49Oracle研习者中级
日期:2016-06-02 10:27:16Hadoop研习者初级
日期:2019-08-01 16:32:19
发表于 2019-6-6 16:05 | 显示全部楼层
厉害哦,搞源码编辑~~~~
mark 学习~~~~
                                      
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-9-20 15:25 , Processed in 0.140544 second(s), 33 queries .

关闭

扫一扫加入
本版微信群