重新编译hadoop的原因是官方提供的包不支持一些常用的底层加密算法,使用hadoop时会报错
编译参考博客: https://blog.youkuaiyun.com/zhanglong_4444/article/details/89266116
如图:snappy加密是不支持的,现在开始准备编译工作:
在/opt/下面创建两个文件夹software(编译用到的软件放在这里)和sourcecode(Hadoop放在这里)。
mkdir -p /opt/sourcecode /opt/software
tar -xzvf hadoop-3.2.1-src.tar.gz
安装jdk。可以参考我之前的博客https://blog.youkuaiyun.com/guodongtanghe/article/details/106961325里面的安装jdk步骤
然后开始安装maven
1、安装wget命令
yum -y install wget
2、下载maven安装包
wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar -zvxf apache-maven-3.5.4-bin.tar.gz解压maven,并配置好下载镜像和本地仓库,
配置变量
vi /etc/profile
export MAVEN_HOME=/opt/software/apache-maven-3.5.4
export MAVEN_OPTS="-Xms256m -Xmx512m"
//在原有的基础上添加$MAVEN_HOME/bin:
export PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
source /etc/profile
验证安装是否成功
mvn -version
安装protobuf2.5.0(必须是这个版本)
下载地址 https://pan.baidu.com/s/1pJlZubT
tar -zvxf protobuf-all-2.5.0.tar.gz
cd protobuf-2.5.0进入目录
yum install -y gcc gcc-c++ make cmake
./configure --prefix=/usr/local/protobuf
make && make install
时间比较久,耐心等待
完成后修改环境变量
vim /etc/profile
export PROTOC_HOME=/usr/local/protobuf
export PATH=$PROTOC_HOME/bin:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
source /etc/profile
protoc --version
下载findbugs http://findbugs.sourceforge.net/downloads.html ,下载后上传到虚拟机
解压缩并配置环境变量
tar -zxvf findbugs-3.0.1.tar.gz
移动到 /opt目录下
mv findbugs-3.0.1 /opt
配置环境变量:
在 /etc/profile 文件末尾添加:
export FINDBUGS_HOME=/opt/findbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin
保存退出,并使更改生效。
查看安装结果
findbugs -version
3.0.1
下载其他需要的依赖:
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
这些都是出错后解决安装的,建议提前都安装好,安装完了基本编译错误也就都解决了= =
yum install -y graphviz
yum install -y protobuf-devel
#添加protobuf libpath
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib
yum install -y zlib* libssl*
source ~/.bash_profile
升级cmake:
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/重新安装ssl
下载ssl https://github.com/openssl/openssl/releases 1.1.0版本
yum remove openssl
tar -zxvf openssl-OpenSSL_1_1_0l.tar.gz
cd openssl-OpenSSL_1_1_0l
./config shared zlib --prefix=/usr/local/openssl && make && make install
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
开始编译:cd到源码所在目录内执行编译命令:mvn clean package -Pdist,native -DskipTests -Dtar
一些错误总结:https://blog.youkuaiyun.com/plifemao/article/details/86711771
如果失败,一定要先mvn clean 在重新编译
编译好后会出现一个hadoop-3.2.1.tar.gz这个tar包。
路径:/opt/sourcecode/hadoop-3.2.1-src/hadoop-dist/target/hadoop-3.2.1.tar.gz