hadoop-3.1.2 Linux 源码编译记录

hadoop-3.1.2 源码编译记录

注: 之前尝试过win环境的编译,但是需要安装的项太多太麻烦,所以换成linux编译,方便快捷
HOME=/home/compile/software
windows编译的请转 https://blog.csdn.net/miracle_8/article/details/105198399

1. 前期依赖项: BUILDING.txt

* Unix System
* JDK 1.8
* Maven 3.3 or later 
* ProtocolBuffer 2.5.0
* CMake 3.1 or newer (if compiling native code)
* Zlib devel (if compiling native code)
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs): 不需要管
* Internet connection for first build (to fetch all Maven and Hadoop dependencies): 不需要管
* python (for releasedocs): 不需要管
* bats (for shell code testing): 不需要管
* Node.js / bower / Ember-cli (for YARN UI v2 building): 不需要管

依赖项调整配置在这里插入图片描述

1. maven: 需要重新配置仓库地址  $HOME/apache-maven-3.6.3/conf  
	settings.xml: 需要配置成可用的仓库地址
2. ProtocolBuffer:
下载的是源码 需要编译 执行步骤: ./configure --prefix=$HOME/protobuf-bin => make && make install => 验证$HOME/protobuf-bin目录下是否存在文件
需要将安装后的目录加入到环境变量中, 统一建下图
3. CMake: 
下载的是编译后的文件, 直接加入到环境变量中即可

4. Zlib/Zlib devel:
下载的是源码 需要编译 执行步骤: ./configure --prefix=$HOME/zlib-bin => make && make install => 验证$HOME/zlib-bin目录下是否存在文件
需要将安装后的目录加入到环境变量中, 统一建下图

5. openssl devel: -1.1.1e
下载的是源码 需要编译 执行步骤: ./config --prefix=$HOME/openssl-bin => make && make install => 验证$HOME/openssl-bin目录下是否存在文件
需要将安装后的目录加入到环境变量中, 统一建下图
步骤:  vim ~/.bashrc => source ~/.bashrc 
export JAVA_HOME=$HOME/jdk
export MAVEN_HOME=$HOME/maven
export CMAKE_HOME=$HOME/cmake
export PROTOBUF_HOME=$HOME/protobuf
export ZLIB_HOME=$HOME/zlib-bin
export OPENSSL_HOME=$HOME/openssl-bin
PATH=$OPENSSL_HOME:$ZLIB_HOME:$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
export PKG_CONFIG_PATH=$HOME/protobuf/lib/pkgconfig/
步骤: vim /etc/ld.so.conf  => ldconfig => ldconfig -p(验证)
include ld.so.conf.d/*.conf
/home/compile/software/protobuf/lib/
/home/compile/software/zlib-bin/lib
/usr/lib64

2. 安装命令

依赖安装之后 进入hadoop的初级目录 执行命令: **mvn clean compile package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true**
安装过程基本应该没有问题 除非是依赖项没有安装正确
编译结束后所有的内容都在 $HOME/hadoop-dist/target 目录下

在这里插入图片描述

编译过程中出现的问题:

  1. 提示pthreads查找不到: 最终是因为zlib或openssl采用了默认的,需要卸载之前的并重新安装新的依赖, 提示的错误内容基本都是CMake报错,可以稍微了解一下cmake原理
yum remove openssl  yum remove zlib 

可能有用的参考文档
https://www.cnblogs.com/cynchanpin/p/7236687.html
https://blog.csdn.net/youresshui/article/details/46891599
https://centos.pkgs.org/7/centos-x86_64/zlib-devel-1.2.7-18.el7.x86_64.rpm.html
https://blog.csdn.net/weixin_34248849/article/details/90283435

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章