1.版本说明
操作系统:ubantu16.04.1 Desktop
hadoop:hadoop-2.7.3-src
eclipse:java-neon
其他需要安装软件说明:
jdk1.8 maven3.0.5 ProtocalBuffer-2.5.0
安装教程请参考我的另一篇博客:http://blog.csdn.net/blue_it/article/details/54133407
2.导入前准备
将hadoop-2.7.3-src.tar.gz解压到eclipse的workspace目录,如下图:
cd进入hadoop-2.7.3-src/hadoop-maven-plugins/目录,输入如下命令:
mvn install
如下图:
执行成功会提示如下信息:
cd 进入hadoop-2.7.3-src目录,输入如下命令:
mvn eclipse:eclipse -DskipTests
执行完成会提示build success。
3 导入
打开eclipse,点击File ---> Import --->Existing Maven Projects
点击,找到workspace下的hadoop-2.7.3-src文件夹,选中,点击finish,即开始导入hadoop源码
导入过程中会弹出对话框选择Resolve all later,然后点击finish即完成项目的导入。
4 错误处理
源码导入后,会看到大概有五十多个项目,其中部分出现红叉,有一个出现红色感叹号。红叉大概有两类原因引起,pom.xml错误和类库无法找到,红色感叹号由资源文件未找到引起。
在eclipse菜单栏选取Windows ---> Preferences ---> Maven ---> Lifecycle Mappings,如下图:
点击Open Workspace Lifecycle Mappings Metadata,即可看到eclipse中打开了lifecycle-mappings-metadata.xml文件,关闭Prefences窗口,编辑lifecycle-mappings-metadata.xml文件,将如下xml内容,复制到lifecycle-mappings-metadata.xml中对原来的文件内容进行覆盖。
org.apache.maven.plugins
maven-antrun-plugin
1.7
run
org.apache.maven.plugins
maven-jar-plugin
2.5
jar
test-jar
org.apache.maven.plugins
maven-plugin-plugin
3.4
descriptor
org.apache.hadoop
hadoop-maven-plugins
2.7.3
protoc
version-info
org.apache.maven.plugins
maven-remote-resources-plugin
1.5
bundle
org.apache.hadoop
hadoop-maven-plugins
1.5
bundle
org.apache.avro
avro-maven-plugin
1.7.4
schema
protocol
编辑文件完成后,保存,再次打开Windows ---> Preferences ---> Maven ---> Lifecycle Mappings,一次点击Rload Workspace Lifecycle Mappings Metadata、 Apply、 OK。
在eclipse中点开每个项目,凡是pom.xml文件出现红叉的,选中该项目名称,右键在弹出的菜单中选取
选择Update Project …即可修正pom.xml出现红叉的错误。
- 解决红叉错误: org.apache.hadoop.ipc.protobuf.xxxx找不到错误
进入hadoop-2.7.3-src/hadoop-common-project/hadoop-common/src/test/proto目录
在命令行中输入如下命令:
protoc --java_out=../java *.proto
执行完成后,选中项目,F5刷新项目,即可解决错误。
- 解决红叉错误:AvroRecord cannot be resolved to a type TestAvroSerialization.java
下载下载 avro-tools-1.7.4.jar,放在hadoop-2.7.3-src/hadoop-common-project/hadoop-common/src/test/avro/目录下
然后执行下述命令:
java -jar avro-tools-1.7.4.jar compile schema avroRecord.avsc ../java
执行完成后,选中项目,F5刷新项目,即可解决错误。
- 解决红色感叹号:Project 'hadoop-streaming' is missing required source……
选定项目右键,properties->Java Build Path->Source->选定带红叉的项->Remove,然后关闭窗口即可。