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