编译原因
1、hadoop是用java写的,但是某些操作不适合用java实现,所以用的是c/c++的动态库(本地库),所以需要根据不同的处理器架构,重新编译,他们以库的形式提供接口供上层调用。
2、hadoop官方提供的是32位的环境
编译环境
CentOS 7.7
hadoop版本:hadoop-2.9.2-src.tar.gz 源码
jdk版本:jdk-8u181-linux-x64.tar.gz
apache-ant-1.9.16-bin.tar.gz
apache-maven-3.8.5-bin.tar.gz
cmake-3.22.4.tar.gz
jdk-8u181-linux-x64.tar.gz
protobuf-2.5.0.tar.gz
snappy-1.1.4.tar.gz
编译步骤
jdk-------->maven---------->其他依赖工具
具体实现
安装:jdk-8u181-linux-x64.tar.gz
4.1.1、rpm -qa | grep jdk 或者 rpm -qa | grep java 查看已经安装的JDK
4.1.2、rpm -e --nodeps JDK
4.1.3、tar -zxvf jdk-8u181-linux-x64.tar.gz
4.1.4、vi /etc/profile 配置环境
4.1.5、环境设置
#Java Environment(推荐配置方式)
export JAVA_HOME=/hadoops/jdk1.8.0_181
export CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib:${CLASSPATH}
export PATH=${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${PATH}
4.1.6、source /etc/profile 重启环境
4.1.7、java -version
安装:apache-maven-3.8.5-bin.tar.gz
4.2.1、rpm -qa | grep maven 查看已经安装的maven
4.2.2、rpm -e --nodeps maven
4.2.3、tar -zxvf apache-maven-3.8.5-bin.tar.gz
4.2.4、vi /etc/profile 配置环境
4.2.5、环境设置
export MAVEN_HOME=/hadoops/apache-maven-3.8.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=${MAVEN_HOME}/bin:${PATH}
4.2.6、source /etc/profile 重启环境
4.2.7、配置阿里云仓库
cd apache-maven-3.8.5/conf/
vi settings.xml
增加
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexusaliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
4.2.8、mvn -v
其中默认本地仓库地址在:/root/.m2/repository/
其他依赖工具
gcc、make、snappy* 、 bzip2* 、 lzo* 、 zlib* 、 lz4* 、gzip* 、openssl* svn ncurses* autoconf automake libtool 、epel-release 、*zstd*
4.3.1、安装gcc make
yum -y install gcc* make
4.3.2、安装压缩工具
yum -y install snappy* bzip2* lzo* zlib* lz4* gzip*
4.3.3、安装一些基本工具
yum -y install openssl* svn ncurses* autoconf automake libtool
4.3.4、安装扩展源
yum -y install epel-release
4.3.5、安装zstd
yum -y install *zstd*
安装:apache-ant-1.9.16-bin.tar.gz
4.4.1、rpm -qa | grep ant 查看已经安装的ant
4.4.2、rpm -e --nodeps ant
4.4.3、tar -zxvf apache-ant-1.9.16-bin.tar.gz
4.4.4、vi /etc/profile 配置环境
4.4.5、环境设置
export ANT_HOME=/hadoops/apache-ant-1.9.16
export PATH=${ANT_HOME}/bin:${PATH}
4.4.6、source /etc/profile 重启环境
4.4.7、ant -version 查版本
安装:protobuf-2.5.0.tar.gz
4.5.1、rpm -qa | grep protobuf 查看已经安装的protobuf
4.5.2、rpm -e --nodeps protobuf
4.5.3、tar -zxvf protobuf-2.5.0.tar.gz
4.5.4、cd /protobuf-2.5.0 进入目录
4.5.5、 ./autogen.sh 编译1
4.5.6、 ./configure 编译2
4.5.7、 make 编译3
4.5.8、 make install 编译4
4.5.9、 protoc --version 查版本
安装:cmake-3.22.4.tar.gz
4.6.1、rpm -qa | grep cmake 查看已经安装的cmake
4.6.2、rpm -e --nodeps cmake
4.6.3、tar -zxvf cmake-3.22.4.tar.gz
4.6.4、cd /cmake-3.22.4
4.6.5、 ./bootstrap 编译1
4.6.6、 ./configure 编译2
4.6.7、 make 编译3
4.6.8、 make install 编译4
4.6.9、 cmake -version 查版本
安装:snappy-1.1.4.tar.gz
4.7.1、rpm -qa | grep snappy 查看已经安装的snappy
4.7.2、rpm -e --nodeps snappy
4.7.3、rm -rf /usr/local/lib/libsnappy* 卸载已经安装的
4.7.4、rm -rf /lib64/libsnappy* 卸载已经安装的
4.7.5、tar -zxvf snappy-1.1.4.tar.gz
4.7.6、 cd /snappy-1.1.4
4.7.7、 ./configure 编译1
4.7.8、 make 编译2
4.7.9、 make install 编译3
4.7.10、ls -lh /usr/local/lib |grep snappy
hadoop-3.3.0版本编译还需要安装配置以下环境
必须要安装的依赖:cyrus-sasl-devel
yum方式安装: yum -y install cyrus-sasl-devel
rpm方式安装:
查并卸载:
rpm -qa | grep cyrus-sasl 查看已经安装的cyrus-sasl
rpm -e --nodeps cyrus-sasl......
安装:
rpm -ivh cyrus-sasl-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-gssapi-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-lib-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-md5-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-plain-2.1.26-23.el7.x86_64.rpm
rpm -ivh cyrus-sasl-scram-2.1.26-23.el7.x86_64.rpm
2、必须要安装的: nodejs
上传解压并配置环境
tar -zxvf node-v16.14.2-linux-x64.tar.gz
vi /etc/profile 配置环境
#NODEJS
export NODEJS_HOME=/hadoops/node-v16.14.2-linux-x64
export PATH=${#NODEJS_HOME}/bin:${PATH}
source /etc/profile 重启环境
node --version 查版本
npm --version
3、必须要安装的:yarn
官方的Yarn存储库会得到持续维护,并提供最新版本。要启用Yarn存储库并导入存储库的GPG密钥
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg
添加存储库后,可以通过运行以下命令安装Yarn
yum -y install yarn
yarn --version
4、设置yarn 解决版本过低的问题 忽略引擎检查,解决版本过低的问题
yarn config set ignore-engines true
编译hadoop
tar -zxvf hadoop-2.9.2-src.tar.gz
cd hadoop-2.9.2/
mvn clean package -DskipTests -Pdist,native -Dtar
mvn clean package -Pdist,native -DskipTests -Dtar -e -X 编译时输出错误日志
完成:成功的64位hadoop包在/opt/hadoop-3.1.3-src/hadoop-dist/target下