在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

posted @   qeDVuHG  阅读(708)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示