目录

正文

1、准备阶段

使用root登录Centos,并且要求能够正常连接网络。配置清单如下:

(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(序列化的框架)

1.1、下载Hadoop源码包

https://hadoop.apache.org/releases.html

1.2、安装、配置maven

tar -zxvf apache-maven-3.0.-bin.tar.gz -C /opt/module/

配置maven镜像源

vi conf/settings.xml

添加以下内容

 <mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

配置maven环境变量

vi /etc/profile

添加一下内容

#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.0.
export PATH=$PATH:$MAVEN_HOME/bi

使得配置信息生效

source /etc/profile

验证maven是否安装成功:

[root@hadoop- software]# mvn -version
Apache Maven 3.0. (r01de14724cdef164cd33c7c8c2fe155faf9602da; -- ::-)
Maven home: /opt/module/apache-maven-3.0.
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /opt/module/jdk1..0_144/jre
Default locale: en_US, platform encoding: UTF-
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
You have new mail in /var/spool/mail/root
[root@hadoop- software]#

1.3 、安装、配置Ant

[root@hadoop- software]# tar -zxvf apache-ant-1.9.-bin.tar.gz -C /opt/module/

[root@hadoop-102 software]# vi /etc/profile

#ANT_HOME

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

export PATH=$PATH:$ANT_HOME/bin

[root@hadoop-102 software]# source /etc/profile
  [root@hadoop-102 software]#

[root@hadoop-102 software]# ant -version
    Apache Ant(TM) version 1.9.9 compiled on February 2 2017
  [root@hadoop-102 software]#

1.4、安装glibc-headers 和  gcc-c++

[root@hadoop- software]# yum -y install glibc-headers
[root@hadoop- software]# yum install gcc-c++

1.5、安装make和cmake

[root@hadoop- software]# yum install make
[root@hadoop- software]# yum install cmake

1.6、编译安装protobuf

[root@hadoop- software]# tar -zxvf protobuf-2.5..tar.gz -C /opt/module/
[root@hadoop- software]# cd /opt/module/protobuf-2.5./
[root@hadoop- protobuf-2.5.]#
[root@hadoop- protobuf-2.5.]#./configure 
[root@hadoop- protobuf-2.5.]# make 
[root@hadoop- protobuf-2.5.]# make check 
[root@hadoop- protobuf-2.5.]# make install 
[root@hadoop- protobuf-2.5.]# ldconfig 

配置环境变量:

[root@hadoop- protobuf-2.5.]# vi /etc/profile
#LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.
export PATH=$PATH:$LD_LIBRARY_PATH
[root@hadoop- protobuf-2.5.]# source /etc/profile
[root@hadoop- protobuf-2.5.]# protoc --version
libprotoc 2.5.

1.7、安装openssl和 ncurses-devel库

[root@hadoop- ~]# yum -y install openssl-devel
[root@hadoop- ~]# yum -y install ncurses-devel

jdk的安装时,解压后配置环境变量,这里就不在赘述。

2、编译Hadoop

2.1、解压源码包

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

2.2、编译

切入到解压后的目录中,执行:

mvn package -Pdist,native -DskipTests -Dtar

2.3、查看编译结果

编译完成后,hadoop包在/opt/hadoop-2.7.2-src/hadoop-dist/target目录下。

3、编译源码过程中常见的问题及解决方案

(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等错误,插件下载未完整或者插件版本问题,最开始链接有较多特殊情况,同时推荐
2.7.0版本的问题汇总帖子 http://www.tuicool.com/articles/IBn63qf

Hadoop的源码编译的更多相关文章

  1. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  2. Hadoop,HBase,Zookeeper源码编译并导入eclipse

    基本理念:尽可能的参考官方英文文档 Hadoop:  http://wiki.apache.org/hadoop/FrontPage HBase:  http://hbase.apache.org/b ...

  3. 基于cdh5.10.x hadoop版本的apache源码编译安装spark

    参考文档:http://spark.apache.org/docs/1.6.0/building-spark.html spark安装需要选择源码编译方式进行安装部署,cdh5.10.0提供默认的二进 ...

  4. hadoop 源码编译

    hadoop 源码编译 1.准备jar 1) hadoop-2.7.2-src.tar.gz 2) jdk-8u144-linux-x64.tar.gz 3) apach-ant-1.9.9-bin. ...

  5. 获取hadoop的源码和通过eclipse关联hadoop的源码

    一.获取hadoop的源码 首先通过官网下载hadoop-2.5.2-src.tar.gz的软件包,下载好之后解压发现出现了一些错误,无法解压缩, 因此有部分源码我们无法解压 ,因此在这里我讲述一下如 ...

  6. Spark源码编译

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3822995.html spark源码编译步骤如下: cd /home/hdpusr/workspace ...

  7. hadoop-1.2.0源码编译

    以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...

  8. hadoop-2.0.0-mr1-cdh4.2.0源码编译总结

    准备编译hadoop-2.0.0-mr1-cdh4.2.0的同学们要谨慎了.首先看一下这篇文章: Hadoop作业提交多种方案 http://www.blogjava.net/dragonHadoop ...

  9. wso2esb源码编译总结

    最近花了两周的空闲时间帮朋友把wso2esb的4.0.3.4.6.0.4.7.0三个版本从源码编译出来了.以下是大概的一些体会. wso2esb是基于carbon的.carbon是个基于eclipse ...

随机推荐

  1. SYN 攻击原理及解决方法

    原理SYN foold攻击主要针对tcp通信三次握手期间做的手脚,所以要弄懂这个攻击的原理我们首先必须知道tcp三次握手的详细过程 由上图可知tcp三次握手顾名思义要经过三个步骤,这三个步骤分别是 客 ...

  2. Redis在Linux下的安装

    一.下载地址 ①redis中文网下载地址:http://www.redis.cn/ ②百度云网盘下载地址:https://pan.baidu.com/s/1UQcF9V3lwA0fxquM_JFMZw ...

  3. Day03_SpringCloud2

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...

  4. 了不起的Node.js 5/16

    Chapter 1 安装 1.Node.js的设计理念之一,只维护较少量的依赖,这使得安装node.js变得非常简单. 2.执行文件console.log没问题,但是node执行http静态服务器的时 ...

  5. PHP cos() 函数

    实例 返回不同数的余弦: <?phpecho(cos(3) . "<br>");echo(cos(-3) . "<br>");ec ...

  6. luogu P4525 自适应辛普森法1

    LINK:自适应辛普森法1 观察题目 这个东西 凭借我们的数学知识应该是化简不了的. 可以直接认为是一个函数 求定积分直接使用辛普森就行辣. 一种写法: double a,b,c,d; double ...

  7. dp的本质

    什么是真正的dp?有什么特点?怎么来搞. 最近遇到了一些以前的题目发现没有好好的理解就直接写了 大多都是书上的算法并不是自己真正的理解. 1 关于背包 我总结一下 可能 有助于对模型的更快发现 01 ...

  8. luogu 4331 [BalticOI 2004]Sequence 数字序列

    LINK:数字序列 这是一道论文题 我去看了一眼论文鸽的论文. 发现讲的还算能懂.可并堆的操作也讲的比较清晰. 对于这道题首先有一个小trick 我们给a数组全部减去其对应的下标这样我们求出来的b数组 ...

  9. 使用IDEA生成jar包的步骤(IDEA打jar包)

    第一步: 1.把module目录下的MATA-INF文件夹删除,如果没有MATA-INF文件夹则不用删除 2.Ctrl + Alt + Shift + S 打开 Project Structure 窗 ...

  10. Spring学习总结(4)-Spring生命周期的回调

    参考文档:https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans ...