• 奈学教育: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

  • 相关阅读:
    echarts做飞线图
    git 检出项目部分目录(稀疏检出)
    nuxt.js引入客户端脚本和第三方库出现window/document/ navigator未定义问题
    防止重复发送 Ajax 请求
    利用CSS、JavaScript及Ajax实现图片预加载的三大方法
    JavaScript中this的指向问题
    掌握jQuery插件开发
    原生javascript实现图片放大镜效果
    javascript实现页面滚屏效果
    JavaScript利用闭包实现模块化
  • 原文地址:https://www.cnblogs.com/Jss-forever/p/13036748.html
Copyright © 2020-2023  润新知