1. 前言
本文的目的是让一个从未接触Hadoop的人,在很短的时间内快速上手,掌握编译、安装和简单的使用。2. Hadoop家族
截止2009-8-19日,整个Hadoop家族由以下几个子项目组成:成员名 | 用途 |
Hadoop Common | Hadoop体系最底层的一个模块,为Hadoop各子项目提供各种工具,如:配置文件和日志操作等。 |
Avro | Avro是doug cutting主持的RPC项目,有点类似Google的protobuf和Facebook的thrift。avro用来做以后hadoop的RPC,使hadoop的RPC模块通信速度更快、数据结构更紧凑。 |
Chukwa | Chukwa是基于Hadoop的大集群监控系统,由yahoo贡献。 |
HBase | 基于Hadoop Distributed File System,是一个开源的,基于列存储模型的分布式数据库。 |
HDFS | 分布式文件系统 |
Hive | hive类似CloudBase,也是基于hadoop分布式计算平台上的提供data warehouse的sql功能的一套软件。使得存储在hadoop里面的海量数据的汇总,即席查询简单化。hive提供了一套QL的查询语言,以sql为基础,使用起来很方便。 |
MapReduce | 实现了MapReduce编程框架 |
Pig | Pig是SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。Yahoo网格运算部门开发的又一个克隆Google的项目Sawzall。 |
ZooKeeper | Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 |
3. 演练环境
3.1. 操作系统
SuSE10,Linux2.6.16,32位版本。3.2. Hadoop
Hive通过SVN直接从网上下载原代码,其它采用hadoop-0.20.0.tar.gz二进制安装包,所以只需要编译Hive。 另外,请注意不要下载2009-8-19号的Hive,2009-8-19提交的Hive版本在hadoop-0.20.0.tar.gz上编译通不过,原因是: Hive源代码根目录\ql\src\java\org\apache\hadoop\hive\ql\exec\FileSinkOperator.java文件中多了一行: import org.apache.hadoop.io.compress.LzoCodec; 而应当下载2009-8-4号和2009-8-19之间的版本,或2009-8-19之后的版本。3.3. Hive
在0.20.0版本的Hadoop二进制安装包中,并没有集成Hive,所以Hive需要自己编译,编译时需要使用到ant和ivy两个工具,而且依赖于Hadoop。3.4. Java
运行Hadoop和编译Hive,都需要使用到Java,所以需要第一个安装的是Java。3.5. 机器
演练时,在3台机器上搭建Hadoop集群,假设这3台机器如下表所示:机器名 | 机器IP | 用途 |
Hadoop-A | 192.168.0.1 | 用作Master |
Hadoop-B | 192.168.0.2 | 用作Slave |
Hadoop-C | 192.168.0.3 | 用作Slave |
3.6. 安装列表
安装 | 说明 |
Java 1.6 | A、B和C三台机器都需要安装 |
Hadoop 0.20.0 | A、B和C三台机器都需要安装 |
Hive | 只需要在B和C两台机器上安装,也就是Slave机器不需要安装 |
ant | 只需要在B和C两台机器上安装,也就是Slave机器不需要安装 |
ivy | 只需要在B和C两台机器上安装,也就是Slave机器不需要安装 |