没有谁必须要帮助你,任何事情都得靠自己去完成
#Hadoop的源码编译
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
[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