CentOS 7.x 编译hadoop 3.1.2

编译hadoop 3.1.2


前提:假设CentOS已经安装完成,并且以下操作全部使用root账户

第一步 配置环境

安装并配置好JDK、MAVEN、ANT

注意,如果是自己下载好的JDK gz包,然后自己配置的话,需要先yum remove java*删除所有系统自带的JDK

为了在最后一步编译Hadoop时能够快点,请自己在Maven配置文件中配置好国内的镜像源

命令参考(如果用yum,而不是自己配置的话):

yum update
yum install java-1.8.0* maven ant

 

使用yum包管理器安装glibc-headers 、 g++(gcc-c++)、make 、cmake、automake、autoconf、libtool、curl、unzip、subversion-devel、openssl-devel

命令参考(中途按y并回车确认):

yum update
yum install glibc-headers gcc-c++ make cmake automake autoconf libtool curl unzip subversion-devel openssl-devel

 

编译、安装和配置protobuf2.5.0(或者直接yum install protobuf protobuf-c*安装),至于为什么不是最新版本,下图就是原因。

如果不想自己编译的话,也可以使用yum进行安装,刚好是2.5.0的版本

CentOS 7.x 编译hadoop 3.1.2_第1张图片

在protobuf源码包中执行下述命令,[path]是指定安装路径(yum安装跳过此步骤)

./autogen.sh 
./configure --prefix=[path]
make
make check
make install
ldconfig

 

然后将编译好的Protobuf配置到环境变量中,例如 /etc/profile(yum安装跳过此步骤)

#LD_LIBRARY_PATH 
export LD_LIBRARY_PATH=[path]/protobuf-2.5.0 
export PATH=$PATH:$LD_LIBRARY_PATH

如果不重启的话,别忘了使用 source 命令更新系统环境变量,例如 source /etc/profile(yum安装跳过此步骤)

 

编译和配置CMake,卸载掉CentOS自带的低版本Cmake

使用自带的CMake编译的后果……

CentOS 7.x 编译hadoop 3.1.2_第2张图片

Github上下载太慢,而且网络中断后需要重新下载,因此选择在cmark.org上进行下载

wget https://cmake.org/files/v3.15/cmake-3.15.0.tar.gz
tar -zxvf cmake-3.15.0.tar.gz
cd cmake-3.15.0
./configure --prefix=[path]
make
make instal

然后配置系统环境变量 /etc/profile之类的文件,别忘了source刷新系统环境变量

 

第二步,编译Hadoop源码

在hadoop源码目录下执行:

mvn package -Pdist,native -DskipTests -Dtar -X

之后没有错误就不用管了,即使配置了镜像源,maven还是用了半天下载

顺便说下,如果是 sun.misc.Unsafe is internal proprietary API and may be removed in a future release导致的错误,只能mvn clean之后再次编译,我编译了7、8次终于成功了,我的老天啊!我还查了了各种各样的资料,正准备在尝试一次的时候,突然全部成功!!!猝不及防……

造成这个警告当成Error的原因不明,但是似乎偶尔不会出现把警告当成error的事情。

CentOS 7.x 编译hadoop 3.1.2_第3张图片

编译好的Hadoop在hadoop-src/hadoop-dist/target

CentOS 7.x 编译hadoop 3.1.2_第4张图片

CentOS 7.x 编译hadoop 3.1.2_第5张图片

编译出的hadoop是确实可用的!

你可能感兴趣的:(java,编译)