• ubuntu 12.04下如何编译hadoop2.4


    问题导读:

    1.如果获取hadoop src  maven包?
    2.编译hadoop需要装哪些软件?
    3.如何编译hadoop2.4?
    扩展:
    编译hadoop为何安装这些软件?





    一、首先下载hadoop源码包
    下载的方式还是比较多的
    1.svn的方式
    svn下载首先需要安装SVN,如果想尝试使用svn,可以参考源码管理、获取网络源码工具:TortoiseSVN使用手册,hadoop的svn下载地址点此
    2.压缩包的方式
    这里我们介绍一种压缩包的方式。
    首先我们登录官网:
    http://hadoop.apache.org/,我们找到下面链接,点进去下载即可。如果刚接触,不知道怎么下载,可以查看帖子新手指导:hadoop官网介绍及如何下载hadoop(2.4)各个版本与查看hadoop API介绍,里面介绍的很详细。



    二、解压

    1. aboutyun@master:~$ tar zxvf hadoop-2.4.0-src.tar.gz 

    解压完毕,我们会看到相应的文件夹:

     


    三、解压完毕,我们开始准备编译所需要的软件
    这里软件的准备,很多文章写的都不全,这里整理一下。哪些软件是需要安装的。

    这里需要说明的是有的Linux有自带的这些工具,这个需要仔细看一下版本是否匹配,不匹配则升级一下,有些不能升级,那么就重装一下吧


    1、jdk的安装
    步骤下载压缩包、解压、配置环境变量

    (1)jdk下载
    链接: http://pan.baidu.com/s/1jGr41SU 密码: rawv
    (2)jdk解压

    1. tar zxvf jdk-7u51-linux-x64.tar.gz

    然后重命令为:
     

    (3)配置环境变量:
    如下图所示红字部分为:(记得这里的路径改成自己的实际安装路径)

    1. /usr/jdk1.7/bin


     

    (4)检验是否安装成功
     


    2、maven的安装

    1. sudo apt-get install maven
    复制代码

    我这里已经安装
     

    上面可能还需要配置环境变量之类的,但是我这里没有好像是系统自带的,网上的资料也比较多,注意maven的版本,我这里是3.0.4,hadoop2.4需要maven的这个版本或则更高的版本3.2.1版本也是可以的。
    验证安装是否成功

    1. mvn -version


     

    3.protobuf的安装
    为防止出错,这里补充一些内容,
    3.1先安装g++

    1. sudo apt-get install g++

    (1)下载

    1. sudo wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz

    由于google不能访问,可以从网盘下载链接:http://pan.baidu.com/s/1dDgWe6P 密码:xgiu

    (2)解压

    1. tar zxvf protobuf-2.5.0.tar.gz 

    如下效果:
    > 

    然后进入protobuf-2.5.0文件夹,进行如下操作:
     

    1. $ sudo ./configure 
    2. $ sudo make 
    3. $ sudo make check 
    4. $ sudo make install 
    5. $ sudo ldconfig 

    修改环境变量:

    1. sudo nano /etc/profile
    1. export LD_LIBRARY_PATH=~/protobuf-2.5.0

    LD_LIBRARY_PATH的这里,填写的是protobuf文件的位置

    1. source /etc/profile

    注意:配置/etc/profile,在虚拟机重启后,可能配置会失效,所以重启后,需要再次执行source操作。

    (3)验证

    1. protoc --version


     


    4.安装openssl库

    1. sudo apt-get install libssl-dev  


    5.CMake安装

    1. sudo yum install cmake

    或则

    1. sudo apt-get install cmake


    6.ant安装

    (1)首先下载ant
    百度网盘: apache-ant-1.9.4-bin.tar.gz
    http://pan.baidu.com/s/1c0vjhBy

    或则下面链接:
    apache-ant-1.9.4-bin.tar.gz

    (2)解压

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

    (3)配置环境变量

    如下图所示:
    1.打开profile

    1. sudo vi /etc/profile

    2.添加下图红字部分,记得修改成自己的路径

     

    3.生效

    1. source  /etc/profile


    4.检验

    1. ant -version




    四、编译hadoop2.4
    上面准备工作已经做的差不多了,我们终于可以开始,记得进入src文件夹下,输入下面命令

    1. mvn package -Pdist,native -DskipTests -Dtar  

     


    等了40多分钟,ok
     

    在目录~/hadoop-2.4.0-src/hadoop-dist/target下有文件:
    hadoop-2.4.0.tar.gz

     

    更多内容:hadoop2.4汇总:hadoop2.4插件下载、完全分布式、伪分布、eclipse插件开发大全


    问题总结:
    这里还需要在补充:
    1.遇到错误1:CMake没有安装

    1. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-
    2. plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has 
    3. occured: Execute failed: java.io.IOException: Cannot run program "cmake" (in 
    4. directory "/home/wyf/hadoop-2.0.2-alpha-src/hadoop-common-project/hadoop-
    5. common/target/native"): java.io.IOException: error=2, No such file or directory 
    6. -> [Help 1]
    7. [ERROR] 
    8. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
    9. switch.
    10. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    11. [ERROR] 
    12. [ERROR] For more information about the errors and possible solutions, please 
    13. read the following articles:
    14. [ERROR] [Help 1] 
    15. http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

    解决方法:
    CMake没有安装

    1. sudo yum install cmake

    或则使用

    1. sudo apt-get install cmake





    2.遇到错误2:ant没有安装

    1. ERROR] Failed to execute goal org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-
    2. alpha-3:compile (hdfs) on project hadoop-hdfs: Execution hdfs of goal 
    3. org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-alpha-3:compile failed: Plugin 
    4. org.codehaus.mojo.jspc:jspc-maven-plugin:2.0-alpha-3 or one of its dependencies 
    5. could not be resolved: Could not transfer artifact ant:ant:jar:1.6.5 from/to 
    6. central (http://repo.maven.apache.org/maven2): GET request of: 
    7. ant/ant/1.6.5/ant-1.6.5.jar from central failed: Read timed out -> [Help 1]
    8. [ERROR] 
    9. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
    10. switch.
    11. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    12. [ERROR] 
    13. [ERROR] For more information about the errors and possible solutions, please 
    14. read the following articles:
    15. [ERROR] [Help 1] 
    16. http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
    17. [ERROR] 
    18. [ERROR] After correcting the problems, you can resume the build with the command
    19. [ERROR]   mvn <goals> -rf :hadoop-hdfs

    1.首先下载ant
    百度网盘: apache-ant-1.9.4-bin.tar.gz
    http://pan.baidu.com/s/1c0vjhBy

    或则下面链接:
    apache-ant-1.9.4-bin.tar.gz

    2.解压

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

    3.配置环境变量
    记得配置环境变量
    如下图所示:
    1.打开profile

    1. sudo vi /etc/profile

    2.添加下图红字部分,记得修改成自己的路径

    3.生效

    1. source  /etc/profile


    4.检验

    1. ant -version



    3.protobuf版本过低,错误现象

    1. [ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.4.0:prot
    2. oc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecut
    3. ionException: 'protoc --version' did not return a version -> [Help 1]
    4. [ERROR]
    5. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
    6. ch.
    7. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    8. [ERROR]
    9. [ERROR] For more information about the errors and possible solutions, please rea
    10. d the following articles:
    11. [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE
    12. xception
    13. [ERROR]
    14. [ERROR] After correcting the problems, you can resume the build with the command
    15. [ERROR]   mvn <goals> -rf :hadoop-common

     

    hadoop2.4对应的版本是protobuf-2.5.0

    解决办法:按照安装步骤中protobuf的安装即可


    4.权限问题

     

    解决办法:
    (1)加上sudo
    (2)通过

    1. ll

    安装包解压之后,所属用户可能发生变化:

    改变用户

    sudo chown -R aboutyun:aboutyun hadoop-2.4.0-src


    上面aboutyun改成自己的所属组和用户


    命令查看是否属于当前用户

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has occured: exec returned: 1 -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    
    安装zlib-devel
    ubuntu安装是
    sudo apt-get install zlib1g-dev
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1
    [ERROR] around Ant part ...<exec dir="/home/xxl/hadoop-2.5.2-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake" failonerror="true">... @ 5:120 in /home/xxl/hadoop-2.5.2-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml
    [ERROR] -> [Help 1]

    安装:sudo apt-get install libssl-dev

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (tar) on project hadoop-dist: An Ant BuildException has occured: exec returned: 1
    [ERROR] around Ant part ...<exec dir="/home/xxl/hadoop-2.5.2-src/hadoop-dist/target" executable="sh" failonerror="true">... @ 21:96 in /home/xxl/hadoop-2.5.2-src/hadoop-dist/target/antrun/build-main.xml

    安装:sudo apt-get install build-essential

    sudo apt-get install libglib2.0-dev 

    错误信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [ERROR] Failed to execute goal on project hadoop-auth: Could not resolve dependencies for project org.apache.hadoop:hadoop-auth:jar:2.2.0: Could not transfer artifact org.mortbay.jetty:jetty:jar:6.1.26 from/to central (https://repo.maven.apache.org/maven2): GET request of: org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar from central failed: SSL peer shut down incorrectly -&gt; [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR] mvn -rf :hadoop-auth

    解决办法:
    这是hadoop的一个bug,在pom.xml中添加下面patch即可,详见https://issues.apache.org/jira/browse/HADOOP-10110 。
    编辑`hadoop-common-project/hadoop-auth/pom.xml`文件:

    1
    vi hadoop-common-project/hadoop-auth/pom.xml

    <dependencys></dependencys>节点中插入:

     
    1
    2
    3
    4
    5
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>test</scope>
    </dependency
       
     
     

    错误信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1 -&gt; [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
    [ERROR]
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR] mvn -rf :hadoop-pipes

    解决办法:

    1
    apt-get install libssl-dev
  • 相关阅读:
    tensorflow学习之路---Session、Variable(变量)和placeholder
    tensorflow学习之路---简单的代码
    python之路:发附带文件的邮件
    pythong中的全局变量的调用和嵌套函数中变量的使用
    python字符串
    Python之路:画空心矩形
    ajax jsonp请求报错not a function的解决方案
    《beyond jquery》读书笔记1
    移动端video标签默认置顶的解决方案
    css中的视距perspective和视差效果
  • 原文地址:https://www.cnblogs.com/ilinuxer/p/5027799.html
Copyright © 2020-2023  润新知