【Hadoop】在Idea环境中编译Hadoop 2.7.6源码(Linux)


本博客文章如无特别说明,均为原创!转载请注明出处:Big data enthusiast(http://www.lubinsu.com/)

本文链接地址:【Hadoop】在Idea环境中编译Hadoop 2.7.6源码(Linux)(http://www.lubinsu.com/index.php/archives/483)

本次内容,我们来演示如何在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
解压进入解压目录,执行如下命令编译安装即可(请使用root用户编译)
./configure
make
make install
源码下载
接下来就是最激动人心的源码编译部分,我们先从官网下载Hadoop 2.7.6版本的源码下来
idea-IC Linux版下载
并打开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退出重新加载,因为可能出现环境变量没加载的情况。然后再重新编译,得到编译成功的清单,完毕!

发表评论

电子邮件地址不会被公开。 必填项已用*标注