本次内容,我们来演示如何在Linux Idea环境中编译Hadoop 2.7.6 源码
安装maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
tar -xzvf apache-maven-3.5.3-bin.tar.gz安装JDK 8
这里就不在赘述了,直接jdk直接从官网上下载下来,解压安装就行了。我的安装的是最新版本的CentOS Linux 7,其自带了JDK 8。所以这里不需要再安装了,直接使用。
配置maven环境变量
vi ~/.bash_profile
export MAVEN_HOME=/home/hadoop/tools/apache-maven-3.5.3
export PATH=.:$PATH:$MAVEN_HOME/bin保存退出后,重新加载环境变量
source ~/.bash_profile如果JAVA_HOME,没有配置对,那么验证maven的时候,可能会出现如下的错误:
The JAVA_HOME environment variable is not defined correctly.
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE.安装相关的依赖库
yum install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev gcc* openssl-devel
安装protobuf-2.5.0
从如下网址下载后:https://github.com/google/protobuf/tree/v2.5.0
解压进入解压目录,执行如下命令编译安装即可(请使用root用户编译)
./configure
make
make install源码下载
接下来就是最激动人心的源码编译部分,我们先从官网下载Hadoop 2.7.6版本的源码下来
wget http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6-src.tar.gzidea-IC Linux版下载
wget https://download.jetbrains.8686c.com/idea/ideaIC-2018.1.4.tar.gz并打开hadoop项目源码

接下来就是漫长的等待,在maven projects窗口配置好我们刚刚安装的maven之后,点击刷新,等maven自动将所有的依赖包下载下来之后,我们就可以开始编译了,好鸡冻!!
我们只要在maven projects窗口输入命令:
mvn clean package -Pdist,native -DskipTests -Dtar即可开始编译
编译

编译过程中可能出现如下报错,我们来一个个解决:
hadoop-common: Error running javah command: Error executing command line
找到hadoop-common项目下的pom.xml,将env.JAVA_HOME修改为java.home,文件中有两个地方需要做修改:
<javahPath>${java.home}/../bin/javah</javahPath>修改hadoop-annotations的依赖范围为compile
vi ./hadoop-common-project/hadoop-auth/pom.xml
vi ./hadoop-common-project/hadoop-common/pom.xml
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<scope>compile</scope>
</dependency>将依赖hadoop-annotations的值由provide改成compile
如果修改环境变量,最好idea退出重新加载,因为可能出现环境变量没加载的情况。然后再重新编译,得到编译成功的清单,完毕!


生活
岂止于美

作者:苏鹭彬
长按二维码关注
本文详细介绍了如何在Linux环境下通过IDEA编译Hadoop2.7.6源码的过程,包括安装Maven、配置JDK、安装依赖库、编译配置等关键步骤。
1535

被折叠的 条评论
为什么被折叠?



