0


hadoop源码编译(从0到1一步步教你如何编译,适用于任何hadoop版本)

hadoop-2.10.1源码编译


文章目录


前言

目前正在学习hadoop,编译源码时遇到一堆报错,深感网上教程误人子弟,决定自己写一篇教程,教大家从0到1安装好环境并且能够编译成功hadoop-2.10.1。
本人编译hadoop源码所使用的主机是阿里云服务器,系统是CentOS6.10。


一、下载hadoop-2.10.1

下载hadoop-2.10.1-src.tar.gz

wget --no-check-certificate https://mirrors.bfsu.edu.cn/apache/hadoop/core/hadoop-2.10.1/hadoop-2.10.1-src.tar.gz

解压

tar -zxvf hadoop-2.10.1-src.tar.gz -C /opt/
该教程我所有的文件都下载在root目录下,解压到opt文件

二、环境要求

打开hadoop-2.10.1-src里面的BUILDING.txt文件
在这里插入图片描述
在BUILDING.txt这个文件里面就已经告诉我们需要的安装的环境了,千万不要再根据别人的教程无脑安装了,适合别人的不一定适合自己啊,本人的血泪教训!!!

不同的hadoop源码版本需要的环境版本各不相同,需要什么环境就老老实实安装什么。

本教程多次所用wget命令,如果觉得太慢了可以安装axel,wget的插件,所用axel更换wget可加速下载。
若wget后面的链接挂了,请自行更换下载。

1.JDK 1.7 or 1.8

本人选择安装jdk1.8,版本jdk-8u202-linux-x64

wget https://mirrors.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

解压

tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/

打开/etc/profile

vim /etc/profile

输入i,在文件的末尾加入如下代码

export JAVA_HOME=/opt/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

按下Esc,Shift+:,输入:wq,保存退出,执行命令

source /etc/profile
(本教程在配置任何环境变量都是如此的两步,因此后面不再过多赘述了)

查看是否安装成功jdk

java -version
如果jdk安装失败,及有可能是/etc/profile文件里的JAVA_HOME=后面加的jdk路径写错了,下文所有环境变量的配置问题同理

2.Maven 3.0 or later

本人一开始安装的是maven3.0版本的,最后编译失败了,所以选择更高版本的apache-maven-3.3.9-bin.tar.gz

wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /opt/

打开/etc/profile,在文件的末尾加入如下代码

export MAVEN_HOME=/opt/apache-maven-3.3.9
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

执行命令

source /etc/profile

查看是否安装成功

mvn -v

打开apache-maven-3.3.9/conf/setting.xml文件,在mirrors里面加入如下代码,这样可以加快hadoop的编译速度,不然太慢了,等的着急啊!

<mirror><id>alimaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf></mirror>

在这里插入图片描述

maven环境安装配置其为重要!!!本人多次在此踩坑,大多数hadoop编译源码报错都源于maven,最后编译hadoop如果出现maven报错,请尝试rm -rf 删除maven,重新安装配置(从头再来,祝你好运)

3.Findbugs 1.3.9

下载解压

wget http://prdownloads.sourceforge.net/findbugs/findbugs-1.3.9.tar.gz?download
tar -zxvf findbugs-1.3.9.tar.gz\?download -C /opt/

打开/etc/profile,在文件的末尾加入如下代码

export FINDBUGS_HOME=/opt/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin

执行命令

source /etc/profile
findbugs -version

4.ProtocolBuffer 2.5.0

下载解压

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
tar zxvf protobuf-2.5.0.tar.gz -C /opt/

进入protobuf

cd /opt/protobuf-2.5.0/

执行编译命令

./configure
make
make check
make install

如果在执行上述命令时出现报错,可先尝试换yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://files.tttidc.com/centos6/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://files.tttidc.com/centos6/epel-6.repo
yum makecache

在执行如下代码

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++

安装完缺少的gcc和gcc-c++之后,请重新执行编译命令,再查看是否安装成功

./configure
make
make check
make install

protoc --version
重要!!!这里极有可能出现报错,./configure、make命令出现报错的的原因大概率是系统缺少gcc和gcc-c++,所以我们在编译protobuf时要保证先安装好编译环境

5.CMake 2.6 or newer

下载解压

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -zxvf cmake-2.8.10.2.tar.gz -C /opt/

进入cmake编译

cd /opt/cmake-2.8.10.2/./bootstrap
gmake
gmake install

查看是否安装成功

cmake -version

6.Zlib devel

下载解压

wget  https://www.zlib.net/zlib-1.2.12.tar.gz
tar -zxvf zlib-1.2.12.tar.gz -C /opt/

进入zlib-1.2.12编译

cd /opt/zlib-1.2.12/./configure --prefix=/usr/local/zlib
make
make check
make install
echo "/usr/local/zlib/lib">>/etc/ld.so.conf 

查看是否安装成功

ldconfig -v

7.openssl devel

下载openssl-devel

yum install openssl-devel
下载 openssl-devel失败的请更换yum

8.Linux FUSE version 2.6 or above

下载解压

wget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.6.0.tar.gz
tar -zxvf fuse-2.6.0.tar.gz -C /opt/

进入fuse编译

cd /opt/fuse-2.6.0/./configure 
make
make install
cd /opt/
cp fuse-2.6.0/fuse.pc /usr/share/pkgconfig
modprobe fuse
lsmod | grep "fuse"

9.python

下载解压

wget  https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -xvf Python-3.6.4.tgz -C /opt/
这里wget,会有点慢,可考虑自行百度下载axel安装与使用

进入Python编译

cd /opt/Python-3.6.4/./configure --prefix=/usr/local/python3
make
make install
ln -s /usr/local/python3/bin/python3.6/usr/bin/python3
ln -s /usr/local/python3/bin/pip3.6/usr/bin/pip3

查看是否安装成功

python3 -V

10.Node.js / bower / Ember-cli

下载解压

wget https://nodejs.org/dist/v10.6.0/node-v10.6.0-linux-x64.tar.gz
tar -zxvf  node-v10.6.0-linux-x64.tar.gz -C /opt/
cd /opt/
mv node-v10.6.0-linux-x64 /usr/local/nodejs

打开/etc/profile

vim /etc/profile

加入如下代码

export NODE_HOME=/usr/local/nodejs
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH

执行命令

source /etc/profile

查看是否安装成功

node -v
npm -v

三、编译hadoop

cd /opt/hadoop-2.10.1-src/
mvn package -Pdist,nativeN -DskipTests -Dtar

总结

以上就是本教程的内容,本文仅仅简单的介绍了如何编译hadoop-2.10.1-src的源码,其实编译其他版本的hadoop源码都是同样的道理。

编译不同的hadoop代码需要的环境版本各不相同,但是没关系,我们把需要的环境先配置好,然后再进行编译。
配置完每一个环境之后都要检查一下是否安装成功!!!

本人在编译hadoop源码时得到的教训是:当我们有一个比较繁琐的任务,而这个任务又可以细分为很多的小任务时,尽量完美的完成好每一个小任务,谨慎小心,因为每一个任务都环环相扣,这句话也送给所有看到这个教程的小伙伴,希望你们都能够编译成功hadoop,加油!

标签: hadoop

本文转载自: https://blog.csdn.net/weixin_45835339/article/details/123974591
版权归原作者 正在敲代码的小娜 所有, 如有侵权,请联系我们删除。

“hadoop源码编译(从0到1一步步教你如何编译,适用于任何hadoop版本)”的评论:

还没有评论