zoukankan      html  css  js  c++  java
  • 编译Hadoop源码

    背景: 在阅读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

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

          

        

     

  • 相关阅读:
    未知高度、宽度,垂直水平居中
    js千分位处理
    浮动与两侧皆自适应布局
    html5 canvas 学习笔记(一)
    全面理解javascript的caller,callee,call,apply概念[转载]
    cocos2dx android运行Luac编译后的lua代码
    cocos2dx android lua文件设置问题
    cocos2dx android resources.ap_ does not exist
    Gink掉过的坑(一):将CCTableView导入到lua中
    数据结构之内部排序个人总结
  • 原文地址:https://www.cnblogs.com/yinchengzhe/p/5503823.html
Copyright © 2011-2022 走看看