3.1.2 Hadoop不同版本架构对比
Hadoop 1.x与Hadoop 2.x的架构对比如图3-2所示。
图3-2 Hadoop 1.x与Hadoop 2.x架构对比
Hadoop 1.x的主要核心组成是MapReduce和HDFS。MapReduce不仅负责数据的计算,而且负责集群作业调度和资源(内存、CPU)管理;HDFS负责数据的存储。
Hadoop 2.x在Hadoop 1.x的基础上引入了新的框架YARN(Yet Another Resource Negotiator)。YARN负责集群资源管理和统一调度,而MapReduce的功能变得单一,其运行于YARN之上,只负责数据的计算。由于YARN具有通用性,因此YARN也可以作为其他计算框架(例如,Spark、Storm等)的资源管理系统,不仅限于MapReduce。
Hadoop 3.x的组成架构与Hadoop 2.x相同,但有些功能得到了非常显著的增强。
Hadoop这种基于YARN的共享集群方式有以下优点:
· 提高了资源利用率。如果不同框架组成的集群相互独立,必然会导致资源的利用不充分,甚至出现资源紧张的情况,而共享集群的方式可以使多个框架共享集群资源,提高了资源利用率。
· 降低了运维成本。使用共享集群的方式,往往只需要少数的运维人员进行集群的统一管理,从而降低了运维成本。
· 数据可以共享。如果不同框架组成的集群相互独立,随着数据的增长,跨集群间的数据移动需要耗费更长时间,而共享集群方式通过共享集群间的数据和资源,大大节省了数据移动时间并降低了成本。
以YARN为中心的共享集群资源架构如图3-3所示。
图3-3 以YARN为中心的共享集群资源
说到底,YARN其实是一个通用的资源管理系统。所谓资源管理,就是按照一定的策略将资源(内存、CPU)分配给各个应用程序使用,并且采取一定的隔离机制防止应用程序之间彼此抢占资源而相互干扰。