在Eclipse中打开Hadoop工程
1. 安装虚拟机,我用的是VMware Workstation 12 Player
2. 在VM中安装Ubuntu,我用的镜像文件是ubuntu-15.10-desktop-amd64.iso
3. 安装java,sudo apt-get install openjdk-7-jdk
4. 安装Eclipse,去Eclipse官网http://www.eclipse.org/downloads,下载Eclipse安装器,运行后选择安装Eclipse IDE for Java Developers
5. 安装git与maven,sudo apt-get install git maven
后面的部分是参考Apache官网的wiki来完成的:http://wiki.apache.org/hadoop/EclipseEnvironment
6. 用git下载Hadoop源码,git clone git://git.apache.org/hadoop-common.git
7. cd进入git下载的hadoop-common文件夹内,然后输入命令:mvn install -DskipTests
这一步可能会报错 cannot run program protoc 之类的
原因是系统没有安装google的protobuf
有一点需要注意的是,当前版本的Hadoop(2.6.4)是依赖于protobuf 2.5.0,而使用apt-get install 安装的protobuf高于这个版本,所以我们需要手动安装2.5.0版本的protobuf
而由于墙的缘故,我们只好使用别人分享的源码了,下载链接是:http://pan.baidu.com/s/1pJlZubT
安装方法参考http://blog.csdn.net/realxie/article/details/7456013
输入protoc --version命令,如显示libprotoc 2.5.0则安装成功
8. 继续输入命令:mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
9. 在Eclipse中导入工程
ps
1. 7/8两步由于需要联网下载依赖项与文档,会耗费相当长的时间
2. vim上下左右变abcd的解决方案见http://blog.csdn.net/yf210yf/article/details/6700308
在导入hadoop-common, hadoop-hdfs, hadoop-mapreduce项目之后,编译器报了数百个错,大概分类如下
1. access restriction
参考http://blog.csdn.net/ustcxjt/article/details/7438614
修改Eclipse的报警等级即可
然后剩下一百一十多个错误
2. avrorecord cannot be resolved to a type
需要下载Apache的avro-tools包,我使用的版本为1.7.7,下载地址为:http://mirrors.hust.edu.cn/apache/avro/avro-1.7.7/java/avro-tools-1.7.7.jar
将下载好的jar包放到hadoop的源码路径,对于我来说就是/home/cc/git/hadoop-common/
然后执行以下命令
cd /home/cc/git/hadoop-common/hadoop-common-project/hadoop-common/src/test/avro
java -jar /home/cc/git/hadoop-common/avro-tools-1.7.7.jar compile schema avroRecord.avsc ../java
刷新项目后还剩108个错误
3. echorequestproto cannot be resolved
首先需要安装好google的protobuf
然后执行以下命令
cd /home/cc/git/hadoop-common/hadoop-common-project/hadoop-common/src/test/proto
protoc --java_out=../java *.proto
刷新项目后还剩55个错误
4. yarn-xxx项目未导入
将hadoop-common中的hadoop-yarn-project项目全部导入Eclipse中
刷新项目,0 Error