• Ubuntu16.04下将hadoop2.7.3源代码导入到eclipse neon中


    0.为什么会有这篇:

      这篇文章的目的在于帮助想学习hadoop源码的内容,却在导入的过程中出现了各种问题的人。

      或许你一定找了很多博客都无果,那么不用担心,我和你一样,这也是这篇文章存在的意义,废话少说,进入正题。

    导入的主要过程如下:

    1.下载源代码:

    首先,登录hadoop的官网(http://hadoop.apache.org/),寻找源码包。

    下载地址:http://hadoop.apache.org/releases.html

    2.解压并打开BUIDING.txt:

    tar -xvf hadoop-2.7.3-src.tar.gz
    cd hadoop-2.7.3-src
    vim BUILDING.txt

    有如下两段:

    第一段:

    Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:
    
    * Oracle JDK 1.7 (preferred)
      $ sudo apt-get purge openjdk*
      $ sudo apt-get install software-properties-common
      $ sudo add-apt-repository ppa:webupd8team/java
      $ sudo apt-get update
      $ sudo apt-get install oracle-java7-installer
    * Maven
      $ sudo apt-get -y install maven
    * Native libraries
      $ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
    * ProtocolBuffer 2.5.0 (required)
      $ sudo apt-get -y install libprotobuf-dev protobuf-compiler

    第二段:

    Importing projects to eclipse
    
    When you import the project to eclipse, install hadoop-maven-plugins at first.
    
      $ cd hadoop-maven-plugins
      $ mvn install
    
    Then, generate eclipse project files.
    
      $ mvn eclipse:eclipse -DskipTests
    
    At last, import to eclipse by specifying the root directory of the project via
    [File] > [Import] > [Existing Projects into Workspace].

    综合这两段内容,如果是在14.04或许可以成功,但是实际在16.0的版本出现了问题

    3.解决BUIDING.txt里的问题:

    主要问题有两个:

    一个坑是jdk的问题:

    $ sudo add-apt-repository ppa:webupd8team/java
    $ sudo apt-get update
    $ sudo apt-get install oracle-java7-installer

    如上的过程是为了安装jdk7,实际执行的过程会因为无法FQ,导致秘钥无法下载。

    替代的方法:从oracle官网下载

    从命令行里提示的结果可以看到:

    这个jdk的版本号是jdk-7u80

    下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    Oracle的官网,这个只能自己下载,下载前必须接受协议。

    当然为了方便我会将这个导入过程所有用到的包全部放进百度云里。链接附在本文的最后了。

    下面怎么做就很简单了,我想对于一个要看hadoop源码的人,装个jdk,配置个环境变量应该是没问题的吧。

    这个第二个坑就是ProtocolBuffer的版本问题:

    这个坑尤其大,导致我编译了一半,才发现问题,这个系统默认为我装上了2.6.1,醉了。。。。。。

    替代方案:

    从官网下载ProtocolBuffer2.5.0来编译安装

    如果你和我一样也被自动安装上了2.6.1,那就只好卸载了,命令如下:

    sudo apt-get purge libprotobuf-dev protobuf-compiler

    然后我们下载官网的protoc2.5.0:

    下载地址:

    https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

    安装过程:

    贴一个别人的连接

    http://blog.csdn.net/lijiajia81/article/details/19204099

    安装过程会有一个坑参照这篇文章解决:

    以下摘自:http://www.cnblogs.com/javaee6/p/4849051.html

    错误原因

    protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib不在ubuntu体系默认的LD_LIBRARY_PATH里,所以就找不到lib

    解决办法

    (1)  在 /etc/ld.so.conf.d/目录下创建文件 bprotobuf.conf文件,文件内容如下

    /usr/local/lib

    (2) 输入命令

    sudo ldconfig

    这时,再输入protoc --version就可以正常看到版本号了

    4.接着就是把工程转换成eclipse项目:

    请注意,若果你网络有访问外国网站比较慢的情况,请修改你的maven源至国内源,我使用的阿里云的maven仓库:

    再贴一个连接:http://blog.csdn.net/u010717403/article/details/52188496

    一切准备好了,就开始我们编译步骤了

    cd hadoop-maven-plugins
    mvn install
    cd ..
    mvn eclipse:eclipse -DskipTests

    然后就是漫长的等待了……

    附一张最后成功的图:

    编译实际的过程用了应该有30多分钟,途中的26分钟只是因为protoc版本不对后的部分编译时间。

    5.导入到eclipse中:

    可以看到全都识别了,finish。

    微量的错,基本不影响看主要的源代码了,当然你也可以去想法修复它们,这至少比直接一导入全是错要来的好了。

    环境问题解决,以后就可以愉快的研究hadoop的源代码了。

    有问题可以,留下评论,或者联系我:584754656@qq.com

    深信积累的力量,时间就是你最好的朋友,否则它就是你最大的敌人。

    如果你想分享此文章,请注明:作者:PurStar 出处:www.cnblogs.com/purstar

  • 相关阅读:
    spring hibernate 调用存储过程
    Mybatis mapper配置
    流量红包算法
    带搜索的下拉框Chosen
    生成二维码
    Linux netlink机制
    OpenFlow Switch学习笔记(七)——Matching Fields
    Hierarchical Token Bucket
    OpenvSwitch架构
    Examining Open vSwitch Traffic Patterns
  • 原文地址:https://www.cnblogs.com/purstar/p/6071225.html
Copyright © 2020-2023  润新知