源码编译 - hadoop3.31

hadoop源码编译

一、准备工作

1、下载hadoop源码

官网地址:https://www.apache.org/index.html#projects-list

清华大学镜像网站:https://mirrors.tuna.tsinghua.edu.cn/apache/

2、编译版本及要求


下载源码,上传至Linux,解压

tar -zxvf hadoop-3.3.1-src.tar.gz -C /usr/local


查看编译要求

less /usr/local/hadoop-3.3.1-src/BUILDING.txt

3、准备编译环境所需安装包

#jdk
  jdk-8u181-linux-x64.rpm

#maven
  apache-maven-3.9.0-bin.tar.gz

#ant 一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。
  apache-ant-1.9.9-bin.tar.bz2

#protobuf 谷歌研发出来的一个网络通信和数据存储的协议 (必备) 2.5版本
  protobuf-2.5.0.tar.gz

#findbugs 编译源码的过程中如果出现bug findbugs会自动帮你找到并定位到这个bug
  findbugs-3.0.1.tar.gz

#node
  node-v13.1.0-linux-x64.tar.gz

#cmake
  cmake-3.26.0-rc5.tar

#snappy
  snappy-1.1.3.tar.gz

4、安装环境配置环境变量

1)yum安装系统自带

yum -y install svn ncurses-devel gcc* lzo-devel zlib-devel autoconf automake libtool openssl-devel bzip2

2)jdk

rpm -ivh jdk-8u181-linux-x64.rpm

3)maven

解压到指定目录

  tar -zxvf apache-maven-3.9.0-bin.tar.gz -C /opt

修改权限

  chmod -R 765 apache-maven-3.9.0

创建软连接(绝对路径)

  ln -s /opt/apache-maven-3.9.0 /usr/local/maven

修改配置文件

  vi /usr/local/maven/conf/setting.xml

a、本地仓库位置

  <localRepository>/data/maven/repository</localRepository>

b、镜像仓库

  <mirrors>

    <!-- 阿里云仓库 -->

  <mirror>

    <id>alimaven</id>

     <mirrorOf>central</mirrorOf>

     <name>aliyun maven</name>

     <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>

  </mirror>

    <!-- 中央仓库1 -->

  <mirror>

    <id>repo1</id>

    <mirrorOf>central</mirrorOf>

    <name>Human Readable Name for this Mirror.</name>

    <url>http://repo1.maven.org/maven2/</url>

  </mirror>

    <!-- 中央仓库2 -->

  <mirror>

    <id>repo2</id>

    <mirrorOf>central</mirrorOf>

    <name>Human Readable Name for this Mirror.</name>

    <url>http://repo2.maven.org/maven2/</url>

  </mirror>

</mirrors>

验证

mvn -v

4)ant

解压到指定位置

tar -zxvf apache-ant-1.9.9-bin.tar.bz2 -C /opt

创建软连接

ln -s /opt/apache-ant-1.9.9 /usr/local/apache-ant

验证

ll /usr/loca/ |grep ‘ant‘

5)protobuf

解压压缩文件

tar -zxf protobuf-2.5.0.tar.gz -C /usr/local/

检查编译所用的环境,并生成用make命令编译使用的文件

cd /usr/local/protobuf-2.5.0

./configure

#编译protobuf

make

#安装protobuf

sudo make install

#查看版本信息并验证是否安装成功

protoc --version

6)findbugs

解压

tar -xzf findbugs-3.0.1.tar.gz -C /usr/local

查看版本

/usr/local/findbugs-3.0.1/bin/findbugs -version

7)node

系统自带版本较低

解压

tar -zxvf node-v13.1.0-linux-x64.tar -C /opt

创建软连接

ln -s /opt/node-v13.1.0-linux-x64 /usr/local/node

8)cmake

 

yum 安装版本低,后期编译报错

卸载已安装的

yum erase cmake

解压

tar -zxvf cmake-3.13.5.tar.gz -C /opt

跳转至cmake目录:

cd /opt/cmake

编译

./configure

安装

make && make install

检验安装是否成功:

cmake -version

9)snappy

#解压压缩

tar -xzf snappy-1.1.3.tar.gz -C /usr/local/

#检查编译所用的环境,并生成用make命令编译使用的文件

cd /usr/local/snappy-1.1.3

./configure

#编译

make

#安装

sudo make install

#查看安装情况

ls -lh /usr/local/lib |grep snappy

10)配置环境变量

vi /etc/profile

#java

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

#node

export NODE_HOME=/usr/local/node

export PATH=$NODE_HOME/bin:$PATH

#set Hadoop_compile

export MAVEN_HOME=/usr/local/maven

export FINDBUGS_HOME=/usr/local/findbugs

export PROTOBUF_HOME=/usr/local/protobuf

export ANT_HOME=/usr/local/apache-ant

export PATH=$PATH:$MAVEN_HOME/bin:$FINDBUGS_HOME/bin:$ANT_HOME/bin

export MAVEN_OPTS="-Xmx2g -XX:MaxMetaspaceSize=512M -XX:ReservedCodeCacheSize=512m"

 

二、编译

进入hadoop目录

cd /usr/local/hadoop-3.3.1-src

开始编译

mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

编译完成后位置

/usr/local/hadoop-3.3.1-src/hadoop-dist/target

由于项目较大,请耐心等待

编译成功

三、编译报错

1、hadoop-maven-plugins:3.3.1:cmake-compile

Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:3.3.1:cmake-compile (cmake-compile) on project hadoop-common: CMake failed with error code 1 -> [Help 1]

原因:yum安装的cmake版本太低,需重新安装

2、frontend-maven-plugin:1.11.2:yarn (yarn install)

Failed to execute goal

com.github.eirslett:frontend-maven-plugin:1.11.2:yarn (yarn install)

on project hadoop-yarn-applications-catalog-webapp:

Failed to run task: 'yarn ' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]

原因:node版本与pom中版本不一致

确认编辑报错位置:hadoop-yarn-applications-catalog-webapp(cd /usr/local/hadoop-3.3.1-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-catalog/hadoop-yarn-applications-catalog-webapp)

修改pom.xml文件中<nodeVersion>v8.11.3</nodeVersion>与系统版本一致

posted @ 2023-03-04 15:16  南星半夏  阅读(378)  评论(0编辑  收藏  举报