http://www.cnblogs.com/errorx/p/3779578.html

1.准备工作

  • jdk:
  • eclipse:
  • Maven:
  • libprotoc :https://developers.google.com/protocol-buffers/
  • hadoop:http://www.apache.org/dyn/closer.cgi/hadoop/common/

添加开源中国maven库:http://maven.oschina.net/home.html

maven\conf\settings.xml

<localRepository>path</localRepository>

<localRepository>path</localRepository>
<mirrors>
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexus osc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
</mirrors>

2.导入

  1. 将hadoop源码解压到一个目录,注意目录层次不要太深,否则可能无法解压。
  2. 进入hadoop-maven-plugins文件夹,执行 mvn install
  3. 返回源码根目录,执行 mvn eclipse:eclipse –DskipTests
  4. eclipse在任意目录创建新的WorkSpace
  5. eclipse设置Maven:window->preference->maven->{Installations...;user Settings:maven\conf\settings.xml}
  6. eclipse:File->inport->Existing Projects into WorkSpace->Hadoop源码根目录

3.错误处理

    1. maven下载pom失败->重新操作
    2. hadoop-streaming中build path错误->Java Build Path->Source:
      1. 删除...hadoop-yarn-server-resourcemanager/conf
      2. Link Source:源码根目录/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/conf,再随便起个名字;inclusion patterns:capacity-scheduler.xml;exclusion patters:**/*.java
    3. org.apache.hadoop.io.serializer.avro.TestAvroSerialization
      1. 下载avro-tools-1.7.4.jar:http://archive.apache.org/dist/avro/avro-1.7.4/java/
      2. 进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\avro
      3. java -jar path/to/avro-tools-1.7.4.jar compile schema avroRecord.avsc ..\java
      4. eclipse 刷新
    4. org.apache.hadoop.ipc.protobuf.TestProtos
      1. 进入目录:源码根目录\hadoop-common-project\hadoop-common\src\test\proto
      2. protoc --java_out=../java *.proto
      3. eclipse 刷新
    5. project->clean..->clean all projects & Build the entire workspace

[导入]Eclipse 导入/编译 Hadoop 源码的更多相关文章

  1. 编译Hadoop源码

    背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Ma ...

  2. Windows 10 x64 下编译 Hadoop 源码

    Windows 10 x64 下编译 Hadoop 源码 环境准备 Hadoop并没有提供官方的 Windows 10 下的安装包,所以需要自己手动来编译,官方文档中 BUILDING.txt 文件中 ...

  3. Eclipse远程调试hadoop源码

    1. 修改对应调试端口 之前的一篇blog里讲述了hadoop单机版调试的方法,那种调试只限于单机运行hadoop命令而已,对于运行整个hadoop环境而言是不可取的,因为hadoop会开启多个jav ...

  4. hadoop源码eclipse环境搭建-源码获取阶段

    就目前了解,结合eclipse阅读和编译hadoop源码用两种方式:svn和git. 根据官方指南http://wiki.apache.org/hadoop/EclipseEnvironment 推荐 ...

  5. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  6. Hadoop源码的编译过程详细解读(各版本)

    说在前面的话   重新试多几次.编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,按ctrl+c,重新运行编译命令. 如果出现缺少了某个文件的情况,则要先清理maven(使用命 ...

  7. hadoop源码编译

    为何要自行编译hadoop源码,往往是由于官方提供的hadoop发行版都是基于32位操作系统,在操作hadoop时会发生warn.   准备软件: 1)JDK 2)Hadoop源码 3)Maven 4 ...

  8. Centos7下编译CDH版本hadoop源码支持Snappy压缩

    1 下载snappy包并编译 wget https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz tar ...

  9. Mac搭建Hadoop源码阅读环境

    1.本次Hadoop源码阅读环境使用的阅读工具是idea,Hadoop版本是2.7.3.需要安装的工具包括idea.jdk.maven.protobuf等 2.jdk,使用的版本是1.8版,在jdk官 ...

随机推荐

  1. 14. javacript高级程序设计-表单

    1. 表单脚本 1.1 基础知识 <from>元素表示表单: l acceptCharset:服务器能处理的字符集 l action:接受请求的URL l elements:表单中所有控件 ...

  2. 项目管理工具~SVN

    SVN 定期更新:每周五,周一早上 目录完备: 需求文档     设计文档     数据字典     测试报告     代码备份     周报月报                           ...

  3. 记录linux系统用户shell终端操作记录

    在 /etc/profile 最后添加 export HISTTIMEFORMAT='[%F %T]: ' export PROMPT_COMMAND='{ msg=$(history 1 | { r ...

  4. eclipse修改jdk后版本冲突问题

    将安装的jdk1.8改为1.7之后出现了很淡疼的问题 修改工程下.setting/ org.eclipse.jdt.core.prefs eclipse.preferences.version=1or ...

  5. android中判断网络连接是否可用

    一.判断网络连接是否可用 public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (C ...

  6. 【python】id()函数

    来源:百度知道 >>> a=2.0 >>> b=2.0 >>> id(a) 524440880 >>> id(b) 524440 ...

  7. HDU 5884 Sort -2016 ICPC 青岛赛区网络赛

    题目链接 #include <iostream> #include <math.h> #include <stdio.h> #include<algorith ...

  8. [javascript]获取系统时间函数

    var oDate=new Date(); //初始化系统时间函数 alert(oDate.getHours()); //获取时 alert(oDate.getMinutes()); //获取分 al ...

  9. curl命令 抓取网络数据相应头

    curl --verbose  --data "Password=123&Username=158101068&url=http://m.vancl.com/" & ...

  10. ios 宏定义 系统版本 判定

    当需要判断iOS系统版本的时候,相信很多人都会这么干: #define SystemVersion [[UIDevice currentDevice] systemVersion].floatValu ...