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

   而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到。

   解决办法就是先对hadoop源码进行编译,再导入eclipse工程。

一、基础软件:

软件 下载地址 推荐版本
JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.7以上
Maven https://maven.apache.org/download.cgi 3.0.2以上
Eclipse https://eclipse.org/downloads/  
Protocol Buffers https://github.com/google/protobuf/releases 2.5.0

 

注: Protocol Buffers在全文中简写成PB

二、编译Hadoop源码

  在Linux环境下编译源码之前,需要进行以下准备:

  • 确保安装的Maven版本在3.0.2以上
  • 确保Protocol Buffers安装版本为2.5.0 

  1、安装PB

    参照site: https://github.com/google/protobuf/blob/master/src/README.md

    从源代码编译的protobuf,需要以下工具:

    > autoconf

    > automake

    > libtool

    > curl (used to download gmock)

    > make

    > g++

    > unzip

    (1). 在ubuntu下可通过以下命令安装:

      $ sudo apt-get install autoconf automake libtool curl make g++ unzip

    (2). 生成配置脚本

      进入PB解压目录  cd {PB_HOME}

      执行:  ./autogen.sh

      此命令将下载gmock源(这是用于C协议缓冲单元测试)到当前目录并且运行automake,autoconf等来生成配置脚本和各种模板的makefile

    (3). 编译

      $ ./configure

      $ make

      $ make check

      $ sudo make install

      $ sudo ldconfig # refresh shared library cache.  
  2、编译所有源码

     在Hadoop安装根目录下执行以下命令

      mvn install -DskipTests

       注: 如果一次不成功,请多试几次。

      

    

编译Hadoop源码的更多相关文章

  1. Windows 10 x64 下编译 Hadoop 源码

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

  2. [导入]Eclipse 导入/编译 Hadoop 源码

    http://www.cnblogs.com/errorx/p/3779578.html 1.准备工作 jdk: eclipse: Maven: libprotoc :https://develope ...

  3. Hadoop源码编译过程

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

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

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

  5. hadoop源码编译

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

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

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

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

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

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

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

  9. Hadoop源码编译环境搭建

    准备工具: maven 3.0.0版本或者更高版本(配置中心库) protocbuff 2.5.0 http://www.zlib.net/ git bash(Windows环境可以用此工具执行编译命 ...

随机推荐

  1. DAG模型——硬币问题

    硬币问题 有n种硬币,面值分别为V1,V2,...,Vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值.1<=n<=100, 0& ...

  2. HDU 2089 不要62(数位DP)

    不要62 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了, ...

  3. ubuntu下编译安装apache

    官网http://httpd.apache.org/download.cgi下载apache源码包后 /*解包*/ gzip -d httpd-2_x_NN.tar.gz tar -xf httpd- ...

  4. MySQL数据库原理

    我们知道,数据是信息的载体——一种我们约定了如何解释的符号.在计算机系统中,最常见的应该是文本数据.我们用它记录配置信息,写日志,等等.而在应用程序中,按一定的数据结构来组织数据的方式叫做数据库管理系 ...

  5. jQuery插件综合应用(一)注册

    一.介绍 注册和登录是每个稍微有点规模的网站就应该有的功能.登陆功能与注册功能类似,也比注册功能要简单些.所以本文就以注册来说明jQuery插件的应用. jQuery插件的使用非常简单,如果只按照jQ ...

  6. express cookie-session解惑

    express的中间件基于connect模块而来,所以相关文档可以直接参考 http://www.senchalabs.org/connect/ 使用cookie-session中间件过程中,比较困惑 ...

  7. 双积分式(A/D)转换器电路结构及工作原理

    1.转换方式 V-T型间接转换ADC. 2.  电路结构 图1是这种转换器的原理电路,它由积分器(由集成运放A组成).过零比较器(C).时钟脉冲控制门(G)和计数器(ff0-ffn)等几部分组成 图1 ...

  8. matlab中 hold on 与hold off的用法

    matlab中 hold on 与hold off的用法 hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制 hold off 使当前轴及图形不在具备被刷新的性质 hold on 和ho ...

  9. Android 将文件保存到SD卡中

    ①写文件到sd卡中需要获得权限,在AndroidManifest.xml中添加如下权限: <uses-permission android:name="android.permissi ...

  10. 【HDU 3435】 A new Graph Game (KM|费用流)

    A new Graph Game Problem Description An undirected graph is a graph in which the nodes are connected ...