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. ef AddDays报错

    ef func写法,在语句中不能使用adddays方法 )); 这样写就是不行 可以改为: ); 下面是我的一个案例,虽然到了最后都没有实现功能! public List<ContractBud ...

  2. 【BZOJ1951】[Sdoi2010]古代猪文 Lucas定理+CRT

    [BZOJ1951][Sdoi2010]古代猪文 Description 求$X=\sum\limits_{d|n}C_n^d$,$Ans=G^X (\mod 999911659)$. Input 有 ...

  3. ORACLE数据库事务隔离级别

    转自:https://www.cnblogs.com/jackal/archive/2011/02/14/1954231.html 事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度. ...

  4. [转]python-元类

    转载于:刘羽冲 两句话掌握python最难知识点——元类 千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两 ...

  5. 【文章阅读】详解MySQL数据类型

    详解MySQL数据类型 - 五月的仓颉 - 博客园 http://www.cnblogs.com/xrq730/p/8446246.html 注:对于MySQL的数据类型做了详细的讲解,这是我看过的最 ...

  6. C#操作AD及Exchange Server总结(二)

    上一节C#操作AD及Exchange Server总结(一)写了对AD的操作,新建AD用户后,通常都需要为此用户开启Exchange邮箱,接下来写如何远程操作Exchange. 三.对Exchange ...

  7. 天天QA

    w 0-Qphp 在全局范围内访问变量有哪几种方法A2种 <?php$a = 1;$b = 2;var_dump($GLOBALS); <?php$a = 1;$b = 2; functi ...

  8. python基础之类的封装

    从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子.但其实这种理解相当片面 一 封装什么 你钱包的有多少钱(数据的封装) 你的性取向( ...

  9. 如何重定向 stderr ?

    可以使用该方法写一个轻量级日志类 #include <cstdio> int main() { FILE *stream = freopen("freopen.txt" ...

  10. Css选择器定位详解

    1.使用 class 属性来定位元素,方法如下: driver.findElement(By.cssSelector("input.login")); 即可以先指定一个 HTML的 ...