zoukankan      html  css  js  c++  java
  • 奈学教育:Hadoop源码编译全流程分享

    首先准备一个hadoop源码包,我选择的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的源码包的根目录下有一个文档叫做BUILDING.txt,这其中说明了编译hadoop所需要的一些编译环境相关的东西。不同的hadoop版本的要求都不一样,对应的版本参照BUILDING.txt

     

    安装对应软件(必须联网)

    安装openssl-devel

    yum -y install svn 

    yum -y install autoconf automake libtool cmake zlib-devel lzo-devel 

    yum -y install ncurses-devel 

    yum -y install openssl-devel 

    yum -y install zlib1g-dev libssl-dev

    安装gcc

    检测gcc是否已经安装:gcc -v

    如果最后一行出现gcc版本信息日志,表示已经安装成功过了

    命令安装:

    yum install -y gcc

    安装gcc-c++

    命令安装:yum -y install gcc-c++

    安装JDK

    安装包:jdk-7u80-linux-x64.tar.gz

    解压安装:tar -zxvf /root/jdk-7u80-linux-x64.tar.gz -C /root/apps/

    配置环境变量:

    vi /etc/profile

    加以下内容:

    export JAVA_HOME=/root/apps/jdk1.7.0_80

    export PATH=$PATH:$JAVA_HOME/bin

    export CLASSPATH=.:/root/apps/jdk1.7.0_80/lib/dt.jar:/root/apps

    /jdk1.7.0_80/lib/tools.jar

    环境变量生效:source /etc/profile

    检查安装是否成功:java -version

    安装Maven

    安装包:apache-maven-3.5.3-bin.tar.gz

    解压安装:tar -zxvf /root/apache-maven-3.5.3-bin.tar.gz -C /root/apps/

    修改配置文件:

    进入到maven的conf目录:cd /root/apps/apache-maven-3.5.3/conf

    有公开课免费试听哦!

    修改配置文件settings.xml:

    在配置文件的中部找到localRepository这个标签,是被注释掉的,将其放出      来自己添加路径:

    <localRepository>

    /root/mavenlocalrepo/

    </localRepository>

    配置环境变量:

    vi /etc/profile

    追加一下内容:

    export M2_HOME=/root/apps/apache-maven-3.5.3 

    export PATH=$PATH:$M2_HOME/bin

    环境变量生效:source /etc/profile

    检查安装是否成功:mvn -version

    设置maven仓库:鉴于远程maven仓库的网络连接不稳定,可以设置成阿里的

     

    安装Ant

    安装包:apache-ant-1.9.9-bin.tar.gz

    解压安装:tar -zxvf /root/apache-ant-1.9.9-bin.tar.gz -C /root/apps/配置环境变量:

    vi /etc/profile

    加以下内容:

    export ANT_HOME=/root/apps/apache-ant-1.9.9 

    export PATH=$PATH:$ANT_HOME/bin

    环境变量生效:source /etc/profile

    检查安装是否成功:ant -version

    安装FindBugs

    安装包:findbugs-3.0.0.tar.gz

    解压安装:tar -zxvf /root/findbugs-3.0.0.tar.gz -C /root/apps/

    配置环境变量:

    vi /etc/profile

    加以下内容:

    export FINDBUGS_HOME=/root/apps/findbugs-3.0.0 

    export PATH=$PATH:$FINDBUGS_HOME/bin

    环境变量生效:source /etc/profile

    检查安装是否成功:findbugs -version

    安装make

    先检测是否安装:

    make -version 

    没有安装使用yum安装:

    yum install -y make

    安装Cmake

    安装包:cmake-2.8.12.2.tar.gz

    解压安装:tar -zxvf /root/cmake-2.8.12.2.tar.gz -C /root/apps/

    编译安装:

    进入根目录:cd /root/apps/cmake-2.8.12.2/

    依次执行一下命令(比较耗时):

    ./bootstrap 

    gmake & gmake install

    检查安装是否成功:cmake -version

    安装Protobuf

    安装包:protobuf-2.5.0.tar.gz

    解压安装:tar -zxvf /root/protobuf-2.5.0.tar.gz -C /root/apps/

    编译安装:

    首先进入到根目录:cd /root/apps/protobuf-2.5.0/ 

    然后依次执行以下命令(比较耗时): 

    ./configure --prefix=/root/apps/protobuf # 表示安装到这个目录 

    make 

    make check 

    make install

    配置环境变量:

    vi /etc/profile

    加以下内容:

    目录就是./configure

    export PROTOBUF_HOME=/root/apps/protobuf

    export PATH=$PATH:$PROTOBUF_HOME/bin

    环境变量生效:source /etc/profile

    检查安装是否成功:protoc -version

    安装Snappy

    安装包:snappy-1.1.1.tar.gz

    解压安装:tar -zxvf /root/snappy-1.1.1.tar.gz -C /root/apps/

    编译安装:

    cd ~/apps/snappy-1.1.1/ 

    然后依次执行以下命令(比较耗时): 

    ./configure --prefix=/root/apps/protobuf # 表示安装到这个目录 

    make 

    make check 

    make install

    查看sanppy lib库:ls -lh /usr/local/lib |grep snappy

    编译Hadoop 

    步骤一

    解压hadoop源码包tar -zxvf /root/hadoop-2.7.7-src.tar.gz -C /root/apps/

    步骤二

    在编译之前防止 java.lang.OutOfMemoryError: Java heap space 堆栈问题,在centos系统中执行命令

    export MAVEN_OPTS="-Xms256m -Xmx512m"

    步骤三

    切换工作目录到hadoop-2.7.7根目录下cd /root/apps/hadoop-2.7.7-src

    步骤四

    执行编译:

    mvn clean package -Pdist,native -DskipTests -Dtar -Dsnappy.lib=/usr/local/lib - Dbundle.snappy -Drequire.openssl

    如果中途编译失败,请重复执行这个命令,直到成功。如果编译过程中,发现卡住了,请停止这个命令,然后重新再执行一遍就可以了。

    步骤五

    静静等待编译……. 第一次编译预估一个小时左右,最后编译成功,jar包所在位置于/root/apps/hadoop-2.7.7-src/hadoop-dist/target

  • 相关阅读:
    leetcode5 Longest Palindromic Substring
    leetcode17 Letter Combinations of a Phone Number
    leetcode13 Roman to Integer
    leetcode14 Longest Common Prefix
    leetcode20 Valid Parentheses
    leetcode392 Is Subsequence
    leetcode121 Best Time to Buy and Sell Stock
    leetcode198 House Robber
    leetcode746 Min Cost Climbing Stairs
    tomcat下使用druid配置jnid数据源
  • 原文地址:https://www.cnblogs.com/Jss-forever/p/13036748.html
Copyright © 2011-2022 走看看