{{:pasted:20150926-125909.png}} === Hadoop 1.0 === Hadoop 1.0 即第一代 Hadoop,由分布式存储系统 HDFS 和分布式计算框架 MapReduce 组成,其中,HDFS 由一个 NameNode 和多个 DataNode 组成,MapReduce 由一个 JobTracker 和多个 TaskTracker 组成,对应 Hadoop 版本为 Apache Hadoop 0.20.x、1.x、0.21.X、0.22.x 和 CDH3 。7 === Hadoop 2.0 === Hadoop 2.0 即第二代 Hadoop,为克服 Hadoop 1.0 中 HDFS 和 MapReduce 存在的各种 问题而提出的。如图 2-4 所示 - 针对 Hadoop 1.0 中的单 NameNode 制约 HDFS 的扩展性问 题,提出了 HDFS Federation,它让多个 NameNode 分管不同的目录进而实现访问隔离和横 向扩展,同时它彻底解决了 NameNode 单点故障问题 - 针对 Hadoop 1.0 中的 MapReduce 在扩展性和多框架支持等方面的不足,它将 JobTracker 中的资源管理和作业控制功能分 开, 分 别 由 组 件 ResourceManager 和 ApplicationMaster 实 现, 其 中,ResourceManager 负责所有应用程序的资源分配,而 ApplicationMaster 仅负责管理一个应用程序,进而诞 生了全新的通用资源管理框架 YARN。基于 YARN,用户可以运行各种类型的应用程序 (不再像 1.0 那样仅局限于 MapReduce 一类应用),从离线计算的 MapReduce 到在线计算 (流式处理)的 Storm 等。Hadoop 2.0 对应 Hadoop 版本为 Apache Hadoop 0.23.x、2.x 和 CDH4 。