Apache Hadoop和Hadoop生态圈
尽管Hadoop因MapReduce及其分布式文件系统(HDFS,由NDFS改名而来)而出名,但Hadoop这个名字也用于一组相关项目的统称,这些相关项目都使用这个基础平台进行分布式计算和海量数据处理。
本书所提到的大多数核心项目都受Apache软件基金会支持,该基金会对开源软件项目的组织提供支持,其中包括最初的HTTP Server项目。随着Hadoop生态圈的成长,出现了越来越多的项目,其中不乏一些非Apache主管的项目,这些项目对 Hadoop是个很好的补充,或提供一些更高层的抽象。
本书所提到的Hadoop项目简述如下。
Common
一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)。
Avro
一种支持高效、跨语言的RPC以及永久存储数据的序列化系统。
MapReduce
分布式数据处理模型和执行环境,运行于大型商用机集群。
HDFS
分布式文件系统,运行于大型商用机集群。
Pig
一种数据流语言和运行环境,用以检索非常大的数据集。Pig 运行在MapReduce和HDFS的集群上。
Hive
一个分布式、按列存储的数据仓库。Hive管理HDFS中存储的数据,并提供基于 SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据。
HBase
一个分布式、按列存储数据库。HBase使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。
ZooKeeper
一个分布式、可用性高的协调服务。ZooKeeper提供分布式锁之类的基本服务用于构建分布式应用。
Sqoop
在数据库和HDFS之间高效传输数据的工具。