奈学教育:Hadoop源码编译全流程分享

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

 奈学教育:Hadoop源码编译全流程分享

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

安装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

奈学教育:Hadoop源码编译全流程分享

有公开课免费试听哦!

修改配置文件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仓库的网络连接不稳定,可以设置成阿里的

 奈学教育:Hadoop源码编译全流程分享

安装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

奈学教育:Hadoop源码编译全流程分享

相关推荐