近期对Hadoop很感兴趣,下面是在CentOS系统上进行编译的分享

系统情况如下:

1. CentOS 6.2 64位
    2. hadoop-2.2.0
    3. jdk 1.6.0_31
    4. maven 3.1.0
    5. protobuf-2.5.0
    6. cmake 2.8.12.1

系统中已经安装好了JDK,并正确进行了设置,这里不说明JDK的安装与设置,请自行查阅

第一步:安装maven

    1.1 下载文件 apache-maven-3.1.0-alpha-1-bin.tar.gz

    1.2 执行命令  tar zvxf apache-maven-3.1.0-alpha-1-bin.tar.gz

    1.3 配置环境变量,编辑etc/profile文件,添加如下代码

MAVEN_HOME=/home/youUser/apache-maven-3.1.-alpha-
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME
export PATH

    1.4 保存文件,并运行如下命令使环境变量生效

source /etc/profile

    1.5 通过如下命令可以查看是否安装正常

mvn -version

  第二步:安装protobuf

    2.1 下载文件  protobuf-2.5.0.tar.gz

    2.2 执行命令  tar zvxf protobuf-2.5.0.tar.gz

    2.3 进入 protobuf-2.5.0 目录,执行下面的命令

 ./configure
make
make check
make install

    2.4 通过如下命令可以查看是否安装正常

protoc --version

  第三步:安装cmake

    3.1 下载安装文件 cmake-2.8.12.1.tar.gz

    3.2 执行如下命令 tar zvxf cmake-2.8.12.1.tar.gz

    3.3 进人 cmake-2.8.12.1 目录,执行如下命令

./bootstrap
make
make install

    3.4 通过如下命令检查安装是否正常

cmake -version

  第四步:安装必要的包

    4.1 执行如下命令,安装 autotool

yum install autoconf automake libtool

    4.2 执行如下命令,安装 openssl-devel

yum install openssl-devel

  第五步:正式编译hadoop

    5.1 下载源码包 hadoop-2.2.0-src.tar.gz

    5.2 执行解包命令 tar zvxf hadoop-2.2.0-src.tar.gz

    5.3 由于源码有问题,需要进行修改,修改 hadoop-common-project/hadoop-auth/pom.xml 文件,添加如下内容

     </dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>

    5.4 进入 hadoop-2.2.0-src 目录,执行如下命令

mvn clean package -Pdist,native -DskipTests -Dtar

    5.5 如果能看到类型下面的输出就证明编程成功,这个过程中要保证网络通畅,需要下载很多包。

    

    5.6 进入 hadoop-dist/target 目录,看一下编译成果吧

  注明:

    有人说可能还需要安装 ncurses-devel , 可以通过 yum install ncurses-devel 进行安装

Hadoop学习历程(一、编译)的更多相关文章

  1. [Hadoop] Hadoop学习历程 [持续更新中…]

    1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...

  2. Hadoop学习历程(五、真正的分布式系统搭建)

    之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建 1. 准备系统与配置 共准备4台机器搭建Hadoop集群.基于CentOS6.2,jdk1.6.0_31,Hadoop2.2.0版本 19 ...

  3. Hadoop学习历程(二、配置)

    以下是进行单节点Hadoop配置的内容,多节点也类似 1. 进行Hadoop的安装 1.1 上文进行了Hadoop的编译,将编译结果目录 hadoop-2.2.0 拷贝为 /usr/hadoop 目录 ...

  4. Hadoop学习历程(四、运行一个真正的MapReduce程序)

    上次的程序只是操作文件系统,本次运行一个真正的MapReduce程序. 运行的是官方提供的例子程序wordcount,这个例子类似其他程序的hello world. 1. 首先确认启动的正常:运行 s ...

  5. Hadoop学习历程(三、第一个程序)

    根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...

  6. Hadoop学习之旅三:MapReduce

    MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...

  7. Hadoop学习(5)-- Hadoop2

    在Hadoop1(版本<=0.22)中,由于NameNode和JobTracker存在单点中,这制约了hadoop的发展,当集群规模超过2000台时,NameNode和JobTracker已经不 ...

  8. Hadoop学习笔记(5) ——编写HelloWorld(2)

    Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我 ...

  9. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

随机推荐

  1. Decimal Basic 学习笔记(1)

    定义变量 LET a 输入变量值 INPUT a INPUT a,b 运算结果绝对值小于1前面的0省略,科学计数 PRINT语句 数值直接写,字符串用“” 通过 分号: 和 逗号,来分隔显示两个项目 ...

  2. 解密随机数生成器(二)——从java源码看线性同余算法

    Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...

  3. oracle11g rac asm 实例内存修改

    ASM实例内存修改 memory_max_target(它为静态参数,修改完成后需要重启实例) memory_target(它为动态参数,不需要重启实例) SQL> select name,is ...

  4. iOS开发手记 - iOS9.3 UINavigationController添加后不显示storyboard中viewcontroller里的控件的解决方法

    我原先是这么做的,通常也是这么做 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSD ...

  5. 2014-07-24 .NET实现微信公众号的消息回复与自定义菜单

    今天是在吾索实习的第12天.我们在这一天中,基本实现了微信公众号的消息回复与自定义菜单的创建. 首先,是实现消息回复,其关键点如下: 读取POST来的数据流:Stream 数据流变量 = HttpCo ...

  6. led驱动程序设计

    LED的驱动程序很简单,按照张字符型设备驱动设计方法顺下来即可实现,这里主要讲几个注意事项. 一.在linux系统中,操作硬件不能够使用物理地址,一定要用虚拟地址.将物理地址转化为虚拟地址的函数如下: ...

  7. ubuntu的web开发环境搭建

    为了保持mac的干净整洁,决定用PD搭建一条web开发环境,记下整个过程. ubuntu 首先是操作系统,本着习惯就好的原则,选用了Ubuntu server 12.04.4版.系统的安装很简单,ht ...

  8. linux mount命令学习

    我们在下面这篇博文中已经有笼统的学习了文件系统的一些相关知识, http://blog.csdn.net/boyxulin1986/article/details/12107113 本篇我们主要是用来 ...

  9. NSData的一些用法

    //NSData遵循NSCopying NSCoding协议,它提供面向对象的数组存储为字节 //适用与读写文件,而读写文件的时候需要一个缓冲区,而NSDate就提供了这么一个缓存区 //定义一个ch ...

  10. Android NOtification 使用(震动 闪屏 铃声)

    一. Notification 简介 在 android 系统中,在应用程序可能会遇到几种情况需要通知用户,有的需要用户回应,有的则不需要,例如: * 当保存文件等事件完成,应该会出现一个小的消息,以 ...