0. 写在最前
某乎的高票答案,《Hadoop权威指南》是Hadoop入门的必备书籍,目前该书的最新版为第四版,但只有英文版,还没有中译版,为了加快阅读速度,我选择了第三版的中译版进行学习。
1. 基本概念
Hadoop提供了一个可靠的共享存储和分析系统。
HDFS和MapReduce是它的核心,其中,HDFS(Hadoop Distributed FileSystem)是Hadoop的文件系统,实现了数据的存储;MapReduce由map和reduce两部分组成,实现数据的分析和处理。
MapReduce是一个批量查询处理器,能够在合理的时间范围内处理针对整个数据集的动态查询。
2. Hadoop VS 关系型数据库RDBMS
关系型数据库RDBMS适合结构化的数据(structured data),如XML或满足特定预定义格式的数据库表;Hadoop适合半结构化(semi-structured data),如电子表格,或非结构化的数据(unstructured data),如纯文本或图像。
关系型数据库往往是规范的(normalized),以保证数据的完整性和非冗余,而规范给MapReduce带来了问题,因为它使记录读取成为非本地操作,而MapReduce的核心假设之一就是可以进行高速的流读写操作。
3. MapReduce的特点
数据本地化(data locality)特性是MapReduce的核心特征。
MapReduce采用无共享(shared-nothing)框架,能够实现失败检测,也就是说,各个任务之间是彼此独立的,程序员不必担心系统部分失效的问题,因为MapReduce能够检测到并重新执行那些失败的map或reduce任务。
4. Hadoop大记事
5. Hadoop相关项目
注:以下仅列出我看到过的,其他的项目没有列出。
MapReduce:分布式数据处理模型和执行环境,运行于大型商用机集群。
HDFS:分布式文件系统,运行于大型商用机集群。
Pig:数据流语言和运行环境,用以探究非常庞大的数据集。Pig运行在MapReduce和HDFS集群上。
Hive:一种分布式的、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。
HBase:一种分布式的、按列存储的数据库。HBase使用HDFS作为低层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。
Zookeeper:一种分布式的、可用性高的协调服务。Zookeeper提供分布式锁之类的基本服务用于构建分布式应用。
6. Hadoop的版本
2.x系统与1.x系列相比,有一定的改变。现在应该已经都用2.x系列了,目前打算在我自己的电脑上搭建Hadoop2的伪分布式集群。
注:本书中的代码及命名方式,详情看书1.6节的说明吧,不再赘述