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

在Eclipse中打开Hadoop工程的更多相关文章

  1. Hadoop3 在eclipse中访问hadoop并运行WordCount实例

    前言:       毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环 ...

  2. Eclipse中Maven WEB工程tomcat调试

    最近没事了玩一下maven,使用maven管理工程中的依赖包非常的方便.建立maven web工程的时候开始不知道怎么用tomcat来调试,总是使用mave的tomcat插件发布了后来调试,觉得非常的 ...

  3. Eclipse如何打开Android工程(转载)

    转自:http://www.cnblogs.com/kernel-style/p/3339102.html 一.Eclipse如何打开Android工程 1.你可以在file->new-> ...

  4. Eclipse如何打开Android工程

    一.Eclipse如何打开Android工程 1.你可以在file->new->other->android object选择选项:create object from exists ...

  5. 在Eclipse 中打开当前文件夹

    最近试过好多次,安装插件来 在Eclipse 中打开当前文件所在文件夹,结果总是不甚如意. 烦躁了,决定还是不要使用插件了!!! 1.打开Eclipse,点击菜单栏上的Run--External To ...

  6. selenium在Eclipse中打开fireFox浏览器是报报错connect to host 127.0.0.1 on port 7055

    1.相信很多同学刚接触selenium时,在Eclipse中打开fireFox浏览器是报报错: org.openqa.selenium.firefox.NotConnectedException: U ...

  7. [Eclipse] eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件【待解决】

    eclipse中打开xml文件,使用ctrl+鼠标左键无法跳转至Java源文件: 1. 设置eclipse ctrl + 左键打开源文件代码,如下图,设置都正常 2. 在网上找了很多种办法,均失败,在 ...

  8. Eclipse中把Java工程修改成web工程

    Eclipse中把Java工程修改成web工程 点击项目:右击:选择properties--输入project facets,将“Dynamic Web Module”打勾即可:

  9. Java Learning 002 Eclipse软件 打开一个工程 和 运行这个工程

    Java Eclipse软件 打开一个工程 和 运行这个工程 我在网上下载了一个 Java 工程源代码.使用Eclipse软件打开这个工程,打开方式有些特别: Step 1 . 点击: File -& ...

随机推荐

  1. thinkphp5开发restful-api接口学习 笔记二

    目录 第4节 为api项目搭建数据库 第5节 使用markdown书写接口文档 第6节(判断数据库中是否有此用户) 第7节 为项目配置URL 需求分析 配置主域名和二级域名 使用tp5路由进行URL解 ...

  2. spring事务(Transaction )报 marked as rollback-only异常的原因及解决方法

    很多朋友在使用spring+hibernate或mybatis等框架时经常遇到报Transaction rolled back because it has been marked as rollba ...

  3. 【HIHOCODER 1599】逃离迷宫4

    描述 小Hi被坏女巫抓进一座由无限多个格子组成的矩阵迷宫. 小Hi一开始处于迷宫(x, y)的位置,迷宫的出口在(a, b).小Hi发现迷宫被女巫施加了魔法,假设当前他处在(x, y)的位置,那么他只 ...

  4. build.xml: 21: Class not found: javac1.8

    在eclipse里运用ant时经常碰到class not found的错误提示,从而编译失败,其实是eclipse中本身的ant版本太老造成该的,但我今天安装的ant是1.8.4,感觉已经很新了,但编 ...

  5. Python虚拟机函数机制之位置参数(四)

    位置参数的传递 前面我们已经分析了无参函数的调用过程,我们来看看Python是如何来实现带参函数的调用的.其实,基本的调用流程与无参函数一样,而不同的是,在调用带参函数时,Python虚拟机必须传递参 ...

  6. MongoDB学习-->Spring Data Mongodb框架之Repository

    application-dev.yml server: port: 8888 mongo: host: localhost port: 27017 timeout: 60000 db: mamabik ...

  7. day03 set集合,文件操作,字符编码以及函数式编程

    嗯哼,第三天了 我们来get 下新技能,集合,个人认为集合就是用来list 比较的,就是把list 转换为set 然后做一些列表的比较啊求差值啊什么的. 先看怎么生成集合: list_s = [1,3 ...

  8. RF操作滚动条(竖拉)

    方式一:window.scrollBy(0, document.body.scrollHeight) 方式二:window.scrollTo(0, document.body.scrollHeight ...

  9. Django数据库的查看、删除,创建多张表并建立表之间关系

    配置以下两处,可以方便我们直接右键运行tests.py一个文件,实现对数据库操作语句的调试: settings里面的设置: #可以将Django对数据库的操作语法,能输出对应的的sql语句 LOGGI ...

  10. PHP下mysql驱动概述

    Overview of the MySQL PHP drivers 什么是API? 一 个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数 ...