您的位置:首页 > 运维架构

Hadoop源码编译

2017-09-29 20:23 633 查看
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) 再重新编译。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: