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

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

          

        

     

  • 相关阅读:
    docker搭建主从复制mysql
    mysql主从复制(mariadb)
    docker搭建mysql8.0
    docker安装mysql
    终端配置kxsw
    AJAX教程
    移动端常见布局
    css为什么需要精灵图
    元素的显示与隐藏
    css网页布局总结
  • 原文地址:https://www.cnblogs.com/yinchengzhe/p/5503823.html
Copyright © 2011-2022 走看看