操作系统:
本人的操作系统为CentOS7.8,软件安装包路径为 /data , 软件安装路径为 /apps ,环境搭建过程中路径请做相应改动
准备工作:
一、下载软件安装包(附官下载地址):
1、jdk-8u231-linux-x64.tar.gz (hadoop 3.1.3 需要的java版本为 jdk 1.8)
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2、apache-maven-3.6.3-bin.tar.gz(Maven 项目管理工具 版本3.5以上即可,用以编译hadoop源码)
https://maven.apache.org/download.cgi
3、protobuf-2.5.0.tar.gz(只能使用2.5.0版本,需要把网页拉倒最下面找到2.5.0的版本)
https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0
4、cmake-3.18.0.tar.gz(yum安装可能无高版本,提前下载了。编译hadoop 3.1.3至少需要cmake3.1以上,推荐cmake3.7以上,本人使用的是当前最新版1.18)
https://cmake.org/files/v3.13/
5、apache-ant-1.10.7-bin.tar.gz(可不安装,版本选择1.10.5或者1.10.7即可。PS:1.10.6可能与JDK1.8有一丢丢的冲突)
https://www.apache.org/dist/ant/binaries/
6、findbugs-3.0.1.tar.gz(可不安装)
https://sourceforge.net/projects/findbugs/
或者:http://findbugs.sourceforge.net/downloads.html
7、hadoop-3.2.1-src.tar.gz(最最关键的,需要编译的hadoop源码)
https://hadoop.apache.org/releases.html
二、解压软件包
软件安装包下载完成后解压(jdk、maven、ant、findbugs、cmake可直接解压至/apps;protobuf解压至当前路径需要编译,后文有介绍; hadoop源码解压至自己的工作路径)
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /apps/java/
tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /apps/maven/
tar -zxvf protobuf-2.5.0.tar.gz -C /apps/protobuf/
tar -zxvf cmake-3.18.0.tar.gz -C /apps/cmake/
tar -zxvf apache-ant-1.10.7-bin.tar.gz -C /apps/ant/
tar -zxvf findbugs-3.0.1.tar.gz -C /apps/findbugs/
tar -zxvf hadoop-3.1.3-src.tar.gz -C /home/wuyunfeng/workspace/hadoop-3.1.3-src
源码编译环境搭建
一、安装配置JDK 1.8
解压jdk安装包至/apps路径后,配置环境变量 (JAVA_HOME路径自己修改)
sudo vim /etc/profile
#java
export JAVA_HOME=/apps/java
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version测试是否安装成功
可参考https://mp.csdn.net/postedit/84400558
二、安装配置Maven 3.6
JAVA环境配置完成后,可进行Maven的安装配置
解压maven安装包至/apps路径后,配置环境变量(MAVEN_HOME路径自己修改)
sudo vim /etc/profile
#maven
export MAVEN_HOME=/apps/maven
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile
mvn -v 测试是否安装成功
三、yum 安装源码编译相关依赖包
注:个别软件包的安装顺序不可乱
1、yum install gcc gcc-c++
2、yum install make
3、yum install autoconf automake libtool curl
4、yum install lzo-devel zlib-devel openssl openssl-devel ncurses-devel
5、yum install snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst
四、安装ProtocolBuffer 2.5.0
在完成上述JDK以及源码编译相关的全部依赖包之后安装编译ProtocolBuffer 2.5.0
1、首先解压ProtocolBuffer安装包至/apps路径后,进入ProtocolBuffer解压后的文件夹目录下:
cd /apps/protobuf
2、编译protobuf-2.5.0
./configure
3、安装protobuf-2.5.0(此处省略了make check过程)
sudo make && make install
4、让动态链接库为系统所共享(添加完后需要调用下ldconfig,不然添加的library会找不到)
ldconfig
protoc --version测试是否安装成功
四、安装CMake3.18.0(若yum已安装CMake3.1或更高版本,忽略此步骤)
在完成上述安装编译ProtocolBuffer 2.5.0后,安装编译CMake3.18.0
1、首先解压cmake安装包至/apps路径后,进入cmake解压后的文件夹目录下:
cd /apps/cmake
2、编译CMake3.18.0
./configure
3、安装CMake3.18.0
sudo make && make install
4、让动态链接库为系统所共享(添加完后需要调用下ldconfig,不然添加的library会找不到)
ldconfig
cmake --version测试是否安装成功
六、安装配置ant-1.10.7
解压ant安装包至/apps路径后,配置环境变量(ANT_HOME路径自己修改)
sudo vim /etc/profile
#ant
export ANT_HOME=/apps/ant
export PATH=$ANT_HOME/bin:$PATH
source /etc/profile
ant -version测试是否安装成功
七、安装配置findbugs-3.0.1
解压findbugs安装包至/apps路径后,配置环境变量(FINDBUGS_HOME路径自己修改)
sudo vim /etc/profile
#findbugs
export FINDBUGS_HOME=/apps/findbugs
export PATH=$FINDBUGS_HOME/bin:$PATH
source /etc/profile
findbugs -version测试是否安装成功
/etc/profile 配置文件如下
至此,各个软件部署完成!
八、编译Hadoop 3.1.3
将进入Hadoop源码路径,执行maven命令
mvn clean package -DskipTests -Pdist,native -Dtar
第一次编译源码需要maven下载很多的jar包,所以编译的时间可能会很久,本人第一次编译历时1小时32分钟编译成功!
可以使用如下命令,将控制台的日志输出存储于output.log文件,以方便错误检查
mvn clean package -DskipTests -Pdist,native -Dtar -l /data/output.log
至此~Hadoop源码编译完成,
编译后的文件位于源码路径下 hadoop-3.1.3-src/hadoop-dist/target
截图中红色的 hadoop-3.1.3.tar.gz 即为编译好的源码压缩包!
附录:
搭建源码编译环境时遇到的问题:
1、yum 安装cmake无3.1以上版本
解决方法:
yum删除已安装的cmake:yum erase cmake
官网下载cmake安装包(选择3.7以上版本,本人为3.18),手动安装。下载链接:https://cmake.org/download/
解压安装包:tar -zxvf cmake-3.13.5.tar.gz -C /apps/cmake
跳转至cmake目录:cd /apps/cmake
编译: ./configure
安装: sudo make && make install
检验安装是否成功:cmake -version
2、手动安装cmake使用sudo仍然报错:权限不足
解决方法:
切换至root账户 或者 修改share 以及 doc 等文件夹所属用户用户组
3、源码编译时提示CMake Error Could NOT find Protobuf(missing:Protobuf_INCLUDE_DIR)
原因:在使用./configure编译时,默认情况下,包将安装到/usr/local。然而,在许多平台上,/usr/local/lib不是LD_LIBRARY_PATH的一部分。
这里可以添加路径,请按如下方式调用configure:
./configure --prefix=/usr
总结:再搭建源码编译环境时,
一定要多阅读各软件安装使用说明!!!
一定要多阅读各软件安装使用说明!!!
一定要多阅读各软件安装使用说明!!!
(如Hadoop-3.2.1中的BUILDING.txt、Protobuf 2.5.0中的README.txt等)
这些文档很大程度上能够更加顺利的完成安装以及更加快速解决遇到的问题!!!