Hadoop教程

【Hadoop篇06】Hadoop源码编译

本文主要是介绍【Hadoop篇06】Hadoop源码编译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

没有谁必须要帮助你,任何事情都得靠自己去完成

#Hadoop的源码编译

准备工作

(1)CentOS联网

Linux虚拟机平畅通的英文“注意:采用根角色编译,减少文件夹权限出现问题” ###(2)罐包准备(((hadoop的原始代码,JDK8,maven,ant,protobuf)”)) )((1)hadoop-2.7.2-src.tar.gz(2)jdk-8u144-linux-x64.tar.gz(3)-1.9.9-bin.tar.gz(内置工具)、、、 ,,,,,,,,,,,,,,,,,,,,,,,框架) ##编译工具安装###(1)安装JDK [根@ hadoop101软件] #tar -zxf JDK -8u144的Linux..gz-C /选择/模块/ [根@ @ hadoop101软件] #VI / etc /配置文件\ #JAVA_HOME:获取JAVA_HOME = / opt /模块/ jdk1.8.0_144转换路径= $路径:$ JAVA_HOME /箱中[根@ hadoop101软件]的/等/简档文件验证命令:爪哇的版本 ###(2)的的Maven的的的解压,配置MAVEN_HOME和PATH

`[[根@ hadoop101软件] #tar -zxvf Apache的maven- 3.0.5-bin.tar.gz -C / opt /模块/

[root @ hadoop101 apache-maven-3.0.5] #vi conf / settings.xml <镜子> <!-镜子| 该存储库|指定要使用的存储库局部站点而不是给定的存储库。此ID服务的ID与该常规的mirrorOf元素匹配。 mirrorId </ id> repositoryId </ mirrorOf> 此后的人的名字。</ name> http://my.repository.com/存储库/路径</ url> </ mirror>-> Nexus aliyun </ name> http://maven.aliyun。 com / nexus / content / groups / public </ url> </ mirror> </ mirrors> [root @ hadoop101 apache-maven-3.0.5] #vi / etc / profile \ #MAVEN_HOME export MAVEN_HOME = / opt / module / Apache的Maven的3.0.5出口PATH = $路径:###(3)配置ANT ```

[root@hadoop101 software]# tar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/
[root@hadoop101 apache-ant-1.9.9]# vi /etc/profile

#ANT_HOME

export ANT_HOME=/opt/module/apache-ant-1.9.9

export PATH=PATH:PATH:PATH:ANT_HOME/bin

[root@hadoop101 software]#source /etc/profile
验证命令:ant -version



### (4)安装 glibc-headers 和  g++  

[root@hadoop101 apache-ant-1.9.9]# yum install glibc-headers

[root@hadoop101 apache-ant-1.9.9]# yum install gcc-c++



### (5)安装make和cmake

[root@hadoop101 apache-ant-1.9.9]# yum install make

[root@hadoop101 apache-ant-1.9.9]# yum install cmake



### (6)安装protobuf 

[root@hadoop101 software]# tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/

[root@hadoop101 opt]# cd /opt/module/protobuf-2.5.0/

[root@hadoop101 protobuf-2.5.0]#./configure

[root@hadoop101 protobuf-2.5.0]# make

[root@hadoop101 protobuf-2.5.0]# make check

[root@hadoop101 protobuf-2.5.0]# make install

[root@hadoop101 protobuf-2.5.0]# ldconfig

[root@hadoop101 hadoop-dist]# vi /etc/profile

#LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0

export PATH=PATH:PATH:PATH:LD_LIBRARY_PATH

[root@hadoop101 software]#source /etc/profile

验证命令:protoc --version



### (7)安装openssl库

[root@hadoop101 software]#yum install openssl-devel



### (8)安装 ncurses-devel库

[root@hadoop101 software]#yum install ncurses-devel
到此,编译工具安装基本完成



## 编译源码

### (1)解压源码到/opt/目录

[root@hadoop101 software]# tar -zxvf hadoop-2.7.2-src.tar.gz -C /opt/



### (2)进入到hadoop源码主目录

[root@hadoop101 hadoop-2.7.2-src]# pwd

/opt/hadoop-2.7.2-src



### (3)通过maven执行编译命令

[root@hadoop101 hadoop-2.7.2-src]#mvn package -Pdist,native -DskipTests -Dtar

等待时间30分钟左右,最终成功是全部SUCCESS


成功的64位hadoop包在/opt/hadoop-2.7.2-src/hadoop-dist/target下

[root@hadoop101 target]# pwd
/opt/hadoop-2.7.2-src/hadoop-dist/target

### (4)编译源码过程中常见的问题及解决方案

(1)MAVEN install时候JVM内存溢出

处理方式:在环境配置文件和maven的执行文件均可调整MAVEN_OPT的heap大小。(详情查阅MAVEN 编译 JVM调优问题,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method)

(2)编译期间maven报错。可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令(一次通过比较难):
[root@hadoop101 hadoop-2.7.2-src]#mvn package -Pdist,nativeN -DskipTests -Dtar

(3)报ant、protobuf等错误,插件下载未完整或者插件版本问题,最开始链接有较多特殊情况,同时推荐



2.7.0版本的问题汇总帖子 http://www.tuicool.com/articles/IBn63qf
## 相关资料

![image-20200624111507710](https://img1.sycdn.imooc.com/5efaa5ff00016dbb05000465.jpg)



> 本文配套** GitHub的**:https://github.com/zhutiansama/FocusBigData 



这篇关于【Hadoop篇06】Hadoop源码编译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!