Hadoop源码编译

来源:互联网 发布:沈阳金蝶软件 编辑:程序博客网 时间:2024/06/05 16:16

Linux环境:CentOS 6.5
版本:Hadoop 2.7.4
下载地址:http://mirrors.shuosc.org/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4-src.tar.gz
参考文档:https://github.com/apache/hadoop/blob/trunk/BUILDING.txt

写在前面的话

以root用户为主,配置全局环境变量
BUILDING.txt中的话

    Requirements:(编译的环境要求)    * Unix System    * JDK 1.8+    * Maven 3.3 or later(伴随后面的工作)    maven相关介绍:    Apache Maven: 软件  pom.xml    Maven  repository:        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>5.1.37</version>        </dependency>       * ProtocolBuffer 2.5.0    * CMake 3.1 or newer (if compiling native code)    * Zlib devel (if compiling native code)    * openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)    * (暂时不需要)Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs)    * Internet connection for first build (to fetch all Maven and Hadoop dependencies)    * (暂时不需要)python (for releasedocs)    * (暂时不需要)bats (for shell code testing)    * (暂时不需要)Node.js / bower / Ember-cli (for YARN UI v2 building)

编译前的准备

    切换到root用户        $>su -    查看是否有相关进程运行        $>ps -ef | grep hadoop    查看是否有安装的残留        $>find / -name hadoop    进入到opt目录        $>cd /opt    创建两个相关文件夹(sourcecode:源码 software:软件)        $>mkdir sourcecode software    将事先下载完的源代码包上传到sourcecode    安装命令        $>yum -y install lrzsz(必须要有网络)    查看是否安装完毕(rz用于上传软件,也可以使用WinSCP)        $>which rz    解压        $>tar -xzvf hadoop-2.8.1-src.tar.gz

部署JAVA环境

    创建目录        $>mkdir /usr/java    进入目录        $>cd /usr/java    使用rz命令上传        $>rz    解压        $>tar -xzvf jdk-8u45-linux-x64.gz    修改用户和用户组(针对出现目录权限变更的情况)        $>chown -R root:root jdk1.8.0_45    配置全局环境变量        $>vi /etc/profile          export JAVA_HOME=/usr/java/jdk1.8.0_45          export PATH=$JAVA_HOME/bin:$PATH    生效环境变量        $>source /etc/profile    验证        $>java -version

安装maven

    进入到相关目录        $>cd /opt/software    使用rz命令上传        $>rz    解压        $>unzip apache-maven-3.3.9-bin.zip    配置全局环境变量        $>vi/etc/profile          export MAVEN_HOME=/opt/software/apache-maven-3.3.9          export MAVEN_OPTS="-Xms256m -Xmx512m"          export PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH    生效环境变量        $>source /etc/profile    验证        $>mvn -version    修改conf/settings.xml(将mirror换成阿里云的,后面编译的时候速度会快些)      <mirrors>        <mirror>          <id>alimaven</id>          <name>aliyun maven</name>          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>          <mirrorOf>central</mirrorOf>                </mirror>      </mirrors>

安装ProtocolBuffer 2.5.0

下载下来的为源码,需要自己手动使用命令进行编译安装,然后进行环境变量的配置

    进入到相关目录        $>cd /opt/software    使用rz命令上传        $>rz    解压        $>tar -xzvf protobuf-2.5.0.tar.gz    进行安装        $>yum install -y gcc gcc-c++ make cmake           (安装cmake  -y表示回车之后不需要输入yes了)        $>cd protobuf-2.5.0        $>./configure --prefix=/opt/software/protobuf  (指定编译之后的安装路径,目录不需要自己去创建,编译过程中会自动创建)        $>make && make install                        (开始安装)    配置全局环境变量        $>vi /etc/profile          export PROTOC_HOME=/opt/software/protobuf          export PATH=$PROTOC_HOME/bin:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH    生效环境变量        $>source /etc/profile    验证        $>protoc --version

Findbugs安装(可选,可以不安装)

    进入到相关目录        $>$>cd /opt/software    使用rz命令上传        $>rz    解压        $>unzip findbugs-1.3.9.zip    配置全局环境变量        $>vi /etc/profile          export FINDBUGS_HOME=/opt/software/findbugs-1.3.9          export PATH=$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH     生效环境变量        $>source /etc/profile    验证        $>findbugs -version

安装其它依赖

根据Github上的文档中Requirements的要求,安装剩下的依赖,以及编译过程中可能会缺失的东西,以免编译失败

        $>yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool        $>yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake

开始编译

        $>cd /opt/sourcecode/hadoop-2.7.4-src        $>mvn clean package -Pdist,native -DskipTests -Dtar        -DskipTests :跳过测试        -Dtar       :打成tar包        BUILDING.txt上的说明:        Building distributions:        Create binary distribution without native code and without documentation:          $ mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true        Create binary distribution with native code and with documentation:          $ mvn package -Pdist,native,docs -DskipTests -Dtar        Create source distribution:          $ mvn package -Psrc -DskipTests        Create source and binary distributions with native code and documentation:          $ mvn package -Pdist,native,docs,src -DskipTests -Dtar        Create a local staging version of the website (in /tmp/hadoop-site)          $ mvn clean site -Preleasedocs; mvn site:stage -DstagingDirectory=/tmp/hadoop-site

编译成功

编译成功的截图
这里写图片描述

编译之后
路径:/opt/sourcecode/hadoop-2.8.1-src/hadoop-dist/target/hadoop-2.7.4.tar.gz
这里写图片描述

补充说明

a.有时候编译过程中会出现下载某个包的时间太久,这是由于连接网站的过程中会出现假死,此时按ctrl+c,重新运行编译命令。
b.如果出现缺少了某个文件的情况,则要先清理maven(使用命令 mvn clean) 再重新编译。

原创粉丝点击