继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【Hadoop篇06】Hadoop源码编译

focusbigdata
关注TA
已关注
手记 23
粉丝 2
获赞 0

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

#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 



打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP