Hadoop学习历程(一、编译)
近期对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学习历程(一、编译)的更多相关文章
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
- Hadoop学习历程(五、真正的分布式系统搭建)
之前都是单节点进行的操作与测试,现在进行真正的多节点系统搭建 1. 准备系统与配置 共准备4台机器搭建Hadoop集群.基于CentOS6.2,jdk1.6.0_31,Hadoop2.2.0版本 19 ...
- Hadoop学习历程(二、配置)
以下是进行单节点Hadoop配置的内容,多节点也类似 1. 进行Hadoop的安装 1.1 上文进行了Hadoop的编译,将编译结果目录 hadoop-2.2.0 拷贝为 /usr/hadoop 目录 ...
- Hadoop学习历程(四、运行一个真正的MapReduce程序)
上次的程序只是操作文件系统,本次运行一个真正的MapReduce程序. 运行的是官方提供的例子程序wordcount,这个例子类似其他程序的hello world. 1. 首先确认启动的正常:运行 s ...
- Hadoop学习历程(三、第一个程序)
根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- Hadoop学习(5)-- Hadoop2
在Hadoop1(版本<=0.22)中,由于NameNode和JobTracker存在单点中,这制约了hadoop的发展,当集群规模超过2000台时,NameNode和JobTracker已经不 ...
- Hadoop学习笔记(5) ——编写HelloWorld(2)
Hadoop学习笔记(5) ——编写HelloWorld(2) 前面我们写了一个Hadoop程序,并让它跑起来了.但想想不对啊,Hadoop不是有两块功能么,DFS和MapReduce.没错,上一节我 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
随机推荐
- java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
首先声明,这篇文章是从网上粘贴过来的.原文地址是:http://www.cnblogs.com/wangaohui/archive/2012/11/28/2791999.html.感觉写的很好,所以粘 ...
- Android Timer的使用
1:服务端使用PHP <?php echo date('Y-m-d H:i:s'); ?> 2:activity_main.xml <RelativeLayout xmlns:and ...
- ural 1348 Goat in the Garden 2
http://acm.timus.ru/problem.aspx?space=1&num=1348 #include <cstdio> #include <cstring&g ...
- POSTGRESQL小玩
因为CDH上需要用它来建HIVE的元库... 参考: http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html 一.简介 Postgr ...
- HDOJ 1418 抱歉(欧拉公式)
Problem Description 非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目: 前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就 ...
- jQuery扩展与noConflict的用法-小示例
有时我们要用到自己定义的jquery,这时可以通过jQuery扩展来实现该功能 index.html <!DOCTYPE html> <html> <head> & ...
- 数组对象元素的添加,String对象,BOM对象以及文档对象的获取
数组对象的删除有三种方法: pop(); //移除最后一个元素并返回该元素值shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移splice(0,2); / ...
- (转)Maven实战(一)安装与配置
1. 简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 如果你已经有十次输入同样的Ant targets来编译你的代码.jar或者w ...
- UINavigation push 于 present到另一个页面详解
如果页面中没有导航栏,可以present到这个A页面,在A页面想要跳转到有个有导航栏的页面就需要添加给B页面添加一个UINavigationController 然后present到B页面,代码如下 ...
- win32线程池代码(WinApi/C++)
win32线程池代码(WinApi/C++) 健壮, 高效,易用,易于扩, 可用于任何C++编译器 //说明, 这段代码我用了很久, 我删除了自动调整规模的代码(因为他还不成熟)/********** ...