1.工具准备,最靠谱的是hadoop说明文档里要求具备的那些工具。

到hadoop官网,点击source下载hadoop-2.7.3-src.tar.gz。

解压之

tar -zxvf hadoop-2.7.3-src.tar.gz

得到hadoop-2.7.3-src文件夹。

进入hadoop-2.7.3-src文件夹,查看BUILDING.txt

cd hadoop-2.7.3-src vim BUILDING.txt

可以看到编译所需的库或者工具:

包括:

JDK1.7+ 
maven 3.0 or later 
findbugs 1.3.9 
protocolBuffer 2.5.0 
cmake 2.6 
zlib-devel 
openssl-devel

除了上面这些,为了不出错,实际还需要autoconf automake gcc等。

下面开始准备这些工具:

首先使用su命令获取root权限,以免受到各种限制

2.下载jdk-7u102-linux-x64.tar.gz,解压后移动到/opt目录下

tar -zxvf jdk-7u102-linux-x64.tar.gz

mv jdk1.8.0_102/opt

然后打开/etc/profile配置jdk环境变量

vim /etc/profile

按 i 进入插入模式,在文件末尾添加

export JAVA_HOME=/opt/jdk1.8.0_102

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

export JRE_HOME=/opt/jdk1.8.0_102/jre

export PATH=$PATH:$JRE_HOME/bin

先后按Esc, Shift+:, wq, 回车即可保存并退出编辑。

输入 source /etc/profile 回车即可保存更改。

运行javac -version 查看状态:

3.下面安装各种库,

yum -y install svn ncurses-devel gcc*

yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel

4.安装protobuf-2.5.0.tar.gz(注意版本必须是2.5.0)

protobuf-2.5.0.tar.gz下载地址:

------------------------------------------分割线------------------------------------------

免费下载地址在http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在/2015年资料/10月/10日/CentOS7下用JDK1.7编译Hadoop-2.7.1全过程详解/

下载方法见http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

tar zxvf protobuf-2.5.0.tar.gz

进入protobuf-2.5.0依次执行

cd protobuf-2.5.0 进入目录

假如 你希望编译成功后输出的目录 为 /home/work /protobuf/ 则输入如下两条命令:

./configure --prefix=/home/work /protobuf/

make && make install

编译成功后将export PATH= /home/work /protobuf/bin:$PATH加入到环境变量中

最后输入  protoc --version命令,如显示libprotoc 2.5.0则安装成功

5.安装maven (注意,如果下载很慢或者经常失败,建议更换maven的下载源,方法在另一篇博客中有说明)

下载apache- maven- 3.3.3- bin.tar.gz

解压缩并配置环境变量

解压:

tar -zxvf apache-maven-3.3.3-bin.tar.gz

移动到/opt目录下:

mv apache-maven-3.3.3 /opt

配置环境变量:

vim /etc/profile

在末尾添加:

export MAVEN_HOME=/opt/apache-maven-3.3.3

export MAVEN_OPTS="-Xms256m -Xmx512m"

export PATH=$PATH:$MAVEN_HOME/bin

先按Esc, Shift+:, wq, 回车即可保存并推出编辑。

输入 source /etc/profile 回车即可保存更改。

查看安装状态: mvn -version

看到

6.安装ant

下载apache-ant-1.9.4-bin.tar.gz

解压缩并配置环境变量

解压:

tar -zxvf apache-ant-1.9.4-bin.tar.gz

移动到/opt目录下

mv apache-ant-1.9.4 /opt

配置环境变量

同上,在/etc/profile文件末未添加:

export ANT_HOME=/opt/apache-ant-1.9.4

export PATH=$PATH:$ANT_HOME/bin

然后保存,退出,并使更改生效。

查看安装结果:

ant -version

7.安装findbugs

下载findbugs-3.0.1.tar.gz,选择上面的standard version即可

解压缩并配置环境变量

解压:

tar -zxvf findbugs-3.0.1.tar.gz

移动到 /opt目录下

mv findbugs-3.0.1 /opt

配置环境变量:

在 /etc/profile 文件末尾添加:

export FINDBUGS_HOME=/opt/findbugs-3.0.1

export PATH=$PATH:$FINDBUGS_HOME/bin

保存退出,并使更改生效。

查看安装结果

8.准备完成,下面开始编译hadoop

进入到hadoop-2.7.3-src目录

vim hadoop-common-project/hadoop-auth/pom.xml

vim /hadoop-common-project/hadoop-common/pom.xml

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<scope>compile</scope>
</dependency>

将节点hadoop-annotations的值由provide 改成compile

使用命令:

mvn clean package –Pdist,native –DskipTests –Dtar

或者:

mvn package -Pdist,native -DskipTests -Dtar

进行编译。  

务必保持网络畅通,经过漫长的等待(本人的比较慢,花了2小时57分钟)!

编译好的文件在/hadoop-dist/target/hadoop-2.7.3.tar.gz下。

注意事项:

1.所有命令,建议手敲,不建议复制粘贴,以避免因为页面空格造成的不必要错误。

2.务必保持网络畅通,如果出现缺少某个文件,则要先清理maven(使用命令 mvn clean) 再重新编译。

3.如果总是出现同一个错误导致编译失败,则可能是缺少某个库或者工具,检查上述工具是否都安装成功,并且版本正确。

hadoop 2.7.3 源码编译教程的更多相关文章

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

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

  2. Mysql 源码编译教程贴

    题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环 ...

  3. Hadoop(一)Hadoop的简介与源码编译

    一 Hadoop简介 1.1Hadoop产生的背景 1. HADOOP最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取.索引.查询等功能,但随着抓取网页数量的增加, ...

  4. hadoop 2.5.2源码编译

    编译过程漫长无比,错误百出,需要耐心耐心!! 1.准备的环境及软件 操作系统:Centos6.4 64位 jdk:jdk-7u80-linux-x64.rpm,不要使用1.8 maven:apache ...

  5. 独一无二 hortonworks spark 源码编译教程

    hortonworks的源码在github上能找到! https://github.com/hortonworks/spark2-release 找到对应版本release源码后下载到本地 在wind ...

  6. Ogre源码编译教程

    最近突然发现Ogre引擎更新到2.1版本了,既然依旧是代码开源,本着学习的精神就下载下来弄弄.但是官网提供的SDK版本只有1.9的,考虑到学习的便利性,因此最好从Source版本开始弄,这样的话以后想 ...

  7. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  8. Hadoop源码编译过程

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

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

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

随机推荐

  1. iOS 错误提示

    1.CUICatalog: Invalid asset name supplied: , or invalid scale factor: 2.000000 =>原因: You are call ...

  2. android studio 运行是,app标题栏不显示

    解决办法:让所有的活动都继承 AppCompatActivity就行了,如: public class FirstActivity extends AppCompatActivity{ ... }

  3. Servlet——总结

    当我们学完了JavaSe部分的知识之后,如果我们往Web方面发展和学习的话,我们将会接触到一个非常重要的web技术——Servlet.在说明Servlet的配置之前我们先来了通过下面的请求响应图解一下 ...

  4. java根据方法名动态调用invoke方法!

    public class Activity { public void deal(String name, long id) { System.out.println(name + id + &quo ...

  5. JDK源码分析之concurrent包(二) -- 线程池ThreadPoolExecutor

    上一篇我们简单描述了Executor框架的结构,本篇正式开始并发包中部分源码的解读. 我们知道,目前主流的商用虚拟机在线程的实现上可能会有所差别.但不管如何实现,在开启和关闭线程时一定会耗费很多CPU ...

  6. mvel

    https://en.wikipedia.org/wiki/MVEL import java.util.*; // the main quicksort algorithm def quicksort ...

  7. 邮件发送异常, [Errno 110] Connection timed out

    邮件发送异常,  [Errno 110] Connection timed out SMTP 服务地址(华东 1): smtpdm.aliyun.com SMTP 服务地址(新加坡):smtpdm-a ...

  8. CentOS安装Apache-2.4.25+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...

  9. ThreadLocal 示例

    ThreadLocal, 从字面意思上看是本地线程. 但实际上它是一个线程本地变量.它的功能就是为每一个使用该变量的线程都提供一个变量值的副本, 从而使得不会与其他线程的副本冲突. 与使用synchr ...

  10. R中的data.table 快速上手入门

    data.table包提供了一个非常简洁的通用格式:DT[i,j,by]. 可以理解为:对于数据集DT,选取子集行i,通过by分组计算j. 对比与dplyr等包,data.table的运行速度更快. ...