编译必须环境:hadoop源码【使用的是2.10.2版本】、JDK8、maven、ant 、protobuf【版本必须是2.5.0,否则编译会报错org.apache.maven.plugin.MojoExecutionException: protoc version is 'libprotoc 3.21.12', expected version is '2.5.0'】
安装 glibc-headers 和 g++ 、make和cmake、openssl库、ncurses-devel库
yum install -y glibc-headers
yum install -y gcc-c++
yum install -y make
yum install -y cmake
yum install -y openssl-devel
yum install -y ncurses-devel
Maven 阿里国内仓库
<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
解压protobuf ,进入到解压后protobuf主目录
./configure
make
make install
ldconfig
最后把所有的 安装软件JDK8、maven、ant 、protobuf 配置 vi /etc/profile
export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0 注意一定要使用 LD_LIBRARY_PATH作为变量名【安装时有提示】
export PATH=$PATH:$LD_LIBRARY_PATH
其他省略
protoc --version、java -version、mvn -v 、ant -version 都正确后说明环境准备完毕
进入到hadoop源码主目录、通过maven执行编译命令
mvn package -Pdist,native -DskipTests -Dtar 中途有问题可以多试几次
成功的64位hadoop包在/opt/hadoop-x.y.z-src/hadoop-dist/target下