详解Hadoop2.7.2 编译64位源码
作者:默默走开 发布时间:2023-08-29 13:41:59
一、环境准备
1.CentOS配置
最好是用新克隆的虚拟机 ,虚拟机内存设置大一点(我设置的4G),配置网络,主机名,关闭防火墙,关闭selinux
注意:采用root角色编译,减少文件夹权限出现问题
2.jar包准备(hadoop源码、JDK8、maven、ant 、protobuf)
(1)hadoop-2.7.2-src.tar.gz
(2)jdk-8u144-linux-x64.tar.gz
(3)apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)
(4)apache-maven-3.0.5-bin.tar.gz
(5)protobuf-2.5.0.tar.gz(序列化的框架)
3.jar包安装(注意:所有操作必须在root用户下完成)
JDK
1.解压
tar -zxf jdk-8u141-linux-x64.tar.gz -C /export/compile
2.配置环境变量
vim /etc/profile
export JAVA_HOME=/export/compile/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
3.更新profile文件
source /etc/profile
4.验证安装是否成功
验证命令:jps 出现jps进程表示安装配置成功
2.Maven
1.解压&重命名
tar -zxf apache-maven-3.0.5-bin.tar.gz -C /export/compile
mv /export/compile/apache-maven-3.0.5-bin.tar.gz /export/compile/maven
2.修改配置文件
vim /export/compile/maven/conf/settings.xml
添加阿里云镜像地址:
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
3.配置环境变量
vim /etc/profile
export MAVEN_HOME=/export/compile/maven
export PATH=$PATH:$MAVEN_HOME/bin
4.更新profile文件
source /etc/profile
5.验证安装是否成功
验证命令:mvn -version
出现版本信息表示安装成功
3.ant
1.解压&重命名
tar -zxf apache-ant-1.9.9-bin.tar.gz -C /export/compile
mv apache-ant-1.9.9 ant
2.配置环境变量
vim /etc/profile
export ANT_HOME=/export/compile/ant
export PATH=$PATH:$ANT_HOME/bin
3.更新profile文件
source /etc/profile
4.验证安装是否成功
验证命令:ant -version 出现版本信息表示安装成功
4.glibc-headers
yum -y install glibc-headers
yum -y install gcc-c++
5.make和cmake
yum -y install make
yum -y install cmake
6.protobuf
1.解压&重命名&进入protobuf根目录
tar -zxf protobuf-2.5.0.tar.gz -C /export/compile
mv protobuf-2.5.0/ protobuf
cd /export/compile/protobuf
2.依次执行如下命令
1 ./configure
2 make
3 make check
4 make install
5 ldconfig
3.配置环境变量
vim /etc/profile
export LD_LIBRARY_PATH=/export/compile/protobuf
export PATH=$PATH:$LD_LIBRARY_PATH
4.更新profile文件
source /etc/profile
5.验证安装是否成功
验证命令:protoc --version
出现版本信息表示安装成功
7.安装openssl库
yum -y install openssl-devel
8.安装 ncurses-devel库
yum -y install ncurses-devel
二、编译源码
1.解压
tar -zxf hadoop-2.7.2-src.tar.gz -C /export/compile
2.进入hadoop源码主目录
/export/compile/hadoop-2.7.2-src
3.通过maven执行编译命令
mvn package -Pdist,native -DskipTests -Dtar
4.然后就是漫长的等待...(大约等待时间30分钟左右,最终成功是全部SUCCESS,如下图所示)
5.成功的64位hadoop包在/export/compile/hadoop-2.7.2-src/hadoop-dist/target
目录下
三、编译源码过程中常见的问题及解决方案
(1)MAVEN install时候JVM内存溢出
原因以及处理方式:在环境配置文件和maven的执行文件均可调整MAVEN_OPT的heap大小。
(详情查阅MAVEN 编译 JVM调优问题,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method)
(2)编译期间maven报错
原因以及处理方式:可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令(一次通过比较难):
mvn package -Pdist,nativeN -DskipTests -Dtar
(3)报ant、protobuf等错误
原因以及处理方式:插件下载未完整或者插件版本问题,最开始链接有较多特殊情况。
来源:https://blog.csdn.net/qq_43733123/article/details/104534926
猜你喜欢
- 这个问题好像在各种数据库中都存在,该如何处理呢?一、SQL中:sql="CREATE TABLE phone&
- 前言本文主要给大家介绍了关于Django跨域请求问题解决的几种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。几种方法
- 我的读者知道我是一个喜欢痛骂Python3 unicode的人。这次也不例外。我将会告诉你用unicode有多痛苦和为什么我不能闭嘴。我花了
- 目录技术背景加速场景基于Numba的GPU加速总结概要技术背景GPU加速是现代工业各种场景中非常常用的一种技术,这得益于GPU计算的高度并行
- 本文实例讲述了Python实现的栈、队列、文件目录遍历操作。分享给大家供大家参考,具体如下:一、 栈与队列1、 栈 stack特点:先进先出
- 大概在2004年初的时候,我第一次买了一本很厚的书,名字或许叫《Dreamweaver MX从入门到精通》,很认真看着书并实践操作大约三分之
- 最近工作上有个需求,当爬虫程序遇到异常的时候,需要通知相应的人员进行修复。如果是国外可能是通过邮件的方式来通知,但国内除了万年不变的 qq
- 前言因为自已平时会把一个常用到逻辑写成一个工具python脚本,像关于时间字符串处理,像关于路径和文件夹遍历什么的工具。每一次新建一个项目的
- 将无权点文件转化成邻接矩阵目前点文件是两列Excel代码,在进行复杂网络运算时需要转化成邻接矩阵。我在网上找了一个代码,稍微修改了下,亲测可
- 一个网站空间,但是却可以实现多个域名的访问的一段ASP代码:<%if Request.ServerVariables("SE
- 描述super() 函数用于调用下一个父类(超类)并返回该父类实例的方法。super 是用来解决多重继承问题的,直接用类名调用父类方法在使用
- 1概述 SQL语言的本质就是一串伪代码,表达的是做什么,而不是怎么做的意思。如其它语言一样,SQL语句需要编译之后才能运行,所以每一条SQL
- TCP客户端程序开发1. 开发 TCP 客户端程序开发步骤回顾创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字2.
- 在ubuntu下面发生的原因是:开了多个pycharm,关掉那个new project选项是灰色的,剩下的那个pycharm的new pro
- 一、前言大家好,今天我来介绍我接一个Python单子。我完成这个单子前后不到2小时。首先我接到这个单子的想法是处理Excel表,在两个表之间
- 对一个列表list而言,进行排序是很简单的。正序排序(从小到大)用list.sort() 倒序排序(从大到小)用list.sort
- 1. 新建文件夹if not os.path.exists(feature_dir): os.makedirs(f
- 前言我们知道python中smtplib模块用于邮件的功能,而django对这个这模块进行封装,使得它使用起来十分简单。django.cor
- 一、Python简介Python是一种面向对象的解释型计算机程序设计语言。Python是纯粹的自由软件, 源代码和解释器CPython遵循
- 1、定义全局变'''全局变量: X 和 O 表示两方的棋子; EMPTY 表示棋位为空; TIE 表示平局; NUM