• 编译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

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

          

        

     

  • 相关阅读:
    敏捷之Scrum框架
    Google浏览器80版本以上无法打开系统页面问题
    ThreadLocal 了解
    简化两个list之间赋值操作
    linux下用命令调用dubbo服务
    13条代码审查建议
    初识MongoDB(1)
    linux日常常用命令整理
    java发起http请求
    工作思维方法
  • 原文地址:https://www.cnblogs.com/yinchengzhe/p/5503823.html
Copyright © 2020-2023  润新知