为了账号安全,请及时绑定邮箱和手机立即绑定

【Hadoop篇06】Hadoop源码编译

标签:
大数据 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 



点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消