一、简介
        Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,Hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。


图1 Hadoop主要项目

        Common:一组分布式文件系统和通用I/O的组件与接口(序列化、Java RPC和持久化数据结构)。
        MapReduce:分布式数据处理模型和执行环境,运行于大型商用机集群。
        HDFS:分布式文件系统,运行于大型商用机集群。
        Zookeeper:一个分布式、可用性高的协调服务,提供分布式锁之类的基本服务用于构建分布式应用。
        HBase:一个分布式、按列存储数据库,使用HDFS作为底层存储,同时支持MapReduce的批量式计算和点查询(随机读取)。
        Pig:一种数据流语言和运行环境,用以检索非常大的数据集,运行在MapReduce和HDFS的集群上。
        Hive:一个分布式、按列存储的数据仓库,管理HDFS中存储的数据,并提供基于SQL的查询语言(由运行时引起翻译成MapReduce作业)用以查询数据。
        Mahout:一个在Hadoop上运行的可扩展的机器学习和数据挖掘类库(例如分类和聚类算法)。
        Avro:一种支持高效、跨语言的RPC以及永久存储数据的序列化系统。
        Sqoop:在数据库和HDFS之间高效传输数据的工具。

二、核心
        Hadoop对应于Google三驾马车:HDFS对应于GFS,即分布式文件系统,MapReduce即并行计算框架,HBase对应于BigTable,即分布式NoSQL列数据库,外加Zookeeper对应于Chubby,即分布式锁设施。


图2 Hadoop核心系统

        简而言之,Hadoop提供了一个可靠的共享存储和分析系统。HDFS实现存储,而MapReduce实现分析处理。纵然Hadoop还有其它功能,但这两部分是它的核心。

三、应用
        Hadoop如何应用依据具体业务而不同,可能如下图:


图3 Hadoop应用案例

四、社区
         下面是一张Hadoop生态图谱,琳琅满目:


图4 Hadoop生态图谱

        各大互联网公司的研究、开发和应用都直接或间接地促进Hadoop社区的发展,从而使得Hadoop生态圈更加丰富多彩。