zoukankan      html  css  js  c++  java
  • 001-编译hadoop-2.5.2总结

        前两天废了很大的劲来对hadoop-2.5.2进行64位系统的手动编译,由于对linux系统环境以及hadoop本身的不熟悉,编译过程中也出现了很多的问题,在此记录一下,对自己以后再次编译和看到此文章的你有一个参考和帮助。

    一、准备的资料

    • 64位linux系统。我使用的是 CentOS
    • JDK 1.7+。注:使用1.7即可,如果是1.8则会编译失败,1.6没有试过,看网上大牛的帖子说也能过
    • maven-3.2.5。  这是apache的一个产品,hadoop的编译要就是3.0以上
    • protobuf  注:谷歌的产品,最好是提前百度准备一下这个文件
    • hadoop-2.5.2-src   这个可以到Apache的官网上去下载
    • ant-1.9.4  这个也是Apache的,在文章最后附的参考链接中有关于下载的百度网盘地址

      这些文件,需要上传到linux系统中,我使用的是SSH来进行上传的,直接上传到了 /root 目录下。同时由于安装过程中需要在线下载东西,古需要保持linux系统的网络畅通。

    二、安装JDK

      

        JDK的安装百度一下有很多文章,我使用的是 jdk-7u71-linux-x64.tar.gz。在oracle的官网上也能够下载。jdk的安装在linux下就是一个加压缩的过程。 

     1      cd  /root
     2      tar -zxvf jdk-7u71-linux-x64.tar.gz
     3      配置环境变量:vim /etc/profile
     4      输入命令进入编辑模式:i
     5      在文件最后添加:export JAVA_HOME=/root/jdk1.7.0_71
     6                              export PATH=.:$PATH:$JAVA_HOME/bin
     7      保存退出(按下Esc,输入冒号,输入wq回车)
     8      使环境变量生效:source  /etc/profile
     9      检测安装是否成功:
    10           java  -version
    11           javac  -version 

    三、安装maven

      

        这个和安装jdk是一样的,安装成后同样需要配置环境变量

      

    export MAVEN_HOME=/usr/mvn/apache-maven-3.2.5
    export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

        同样,输入命令使配置文件生效  

    source /etc/profile

        检测是否安装成功:  

    mvn  -version

        能够看到关于maven的一些信息,包括所使用的jdk

    四、安装protobuf

      

        这一步比较关键,protobuf最好是提前下载然后上传上去。安装protobuf前,需要安装一些其他的东西

      yum  install  gcc    安装c++
      yum  install  gcc-c++          然后会两次提示输入 y(yes/no)
      yum install  make          可能会提示因为make已经是最新版本,而不会安装,这个无所谓,反正是最新版本,就不安装了

        接下来便是安装protobuf,同样是一个解压缩的过程

    cd  /root
    tar -zxvf protobuf-2.5.0.tar.gz

        然后进入到安装目录中,以此输入一下命令: 

    1  cd  /protobuf-2.5.0
    2  ./configrue
    3  make
    4  make  install

       我在进行上面第二个命令,对configure进行预编译时报错,查看异常后,是c++没有安装成功,便再一次执行了:yum install  gcc-c++ 命令,OK
       make  命令执行的时间比较长,最后一个命令的执行安装,如果出现错误,重新来过即可

       测试   

     protoc  --version

    五、安装CMake

        CMake 需要2.6以上的版本,在安装的时候会提示输入 y/N,同时由于安装这个组件是需要联网的,故根据网速不同,安装的进度也不一样

      

    1     yum  install  cmake     
    2     yum  install  openssl-devel
    3     yum  install  ncurses-devel

     

    六、ant 安装   

      tar zxvf  apache-ant-1.9.4-bin.tar.gz

        配置环境变量

      

     export ANT_HOME=/root/apache-ant-1.9.4
     export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$ANT_HOME/bin

        生效以及测试  

    1  source /etc/profile
    2  ant  -version

    七、编译hadoop

      1、解压hadoop源码包  

      

     tar -zxvf hadoop-2.5.2-src.tar.gz

        进入文件夹里面,里面有一个文件BUILDINT.txt,打开即可看见里面关于编译hadoop的一些环境要求  

    1   cd /root/hadoop-2.5.2-src/
    2   cd hadoop-2.5.2-src
    3 
    4   vim  BUILDINT.txt
    5  

        2、编译hadoop
           进入解压后的原文件中,即上面查看BUILDING.txt文件目录,然后输入一下命令即可  

      

    mvn package -Pdist,native -DskipTests -Dtar

            或者是下面的命令 

    mvn  package -DeskipTests -Pdist,native

        3、等带编译结果

          编译完成后会有提示,SUCCESS / FAILURE。如下

       

        如果编译失败,向上滚动,变能够查看什么地方出错了。

        4、查看编译结果 

         同样在刚刚进行编译的那个目录下,有一个 hadoop-dist文件夹,进入里面的target文件夹,然后就可以看到编译成功64位的hadoop文件,解压后的在 hadoop-2.5.2 这个文件夹中,同时还生成了一个压缩包:hadoop-2.5.2-tar.gz 这个压缩包可以拷贝到别的机器上进行安装 

    八、问题

      

      1、jdk 不能够用1.8的,在编译的第二个步骤中就失败,查看原因是: 意外的字符 </ul>  这个在百度上查看了很多人都遇到,都说是因为1.8和hadoop的兼容性不好,反正最后换成1.7的就安装成功了

      

      

      2、换了 jdk 后,在编译过程中,还是出现很多问题,mdkir plug(名字记不清了)。这个文件安装失败时,也没有管他,再一次执行了最后的安装命令,这一次通过了

      

      

      3、什么插件什么没有安装成功,也没有管,再一次执行安装,也过了

      

      

      4、common 文件安装失败,这一次就没有那么好的运气了,无论怎么重新执行,都没有安装成功,运行时没有安装 ant ,然后把后上面第六步中的 ant 安装后,就成功编译通过了,费时比较长

      

      

      5、安装过程中,网络一定要非常畅通,如果网速不好,同样可能会安装失败,同时也会影响安装速度。由于我电脑性能不好,安装的时候也不敢做其他的事情,就等着

     

    上面基本上是在编译 hadoop 中的步奏和问题。

    参考文章:http://www.aboutyun.com/thread-8130-1-1.html

        

       

      

       

     

     

     

     

  • 相关阅读:
    python's eithteenth day for me 面向对象——命名空间
    python's seventeenth day for me 面向对象
    python's sixteenth day for me 员工信息表
    python's fifteenth day for me 递归函数
    python's fourteenth day for me 内置函数
    用装饰器做一个登陆功能(进阶):
    装饰器 为多个函数加上认证功能(账号密码来源于文件),要求只要登陆成功一次,后续函数则无需登陆。
    python's thirteenth day for me 迭代器 生成器
    php函数
    php日期格式
  • 原文地址:https://www.cnblogs.com/qigang/p/4194728.html
Copyright © 2011-2022 走看看