Apache Hadoop YARN (Yet Another Resource Negotiator)是Hadoop系统的资源管理器,为各类应用程序进行资源的管理和调度。Apache HAWQ通过libyarn模块,把自己作为一个Hadoop应用,注册到YARN的Resource Manager,这样就可以与Map Reduce、Spark等其他应用一起被纳入YARN的资源管理中,由YARN统一对资源进行管理和调度。本文将简单介绍HAWQ libyarn模块的基本原理和功能。
YARN的基本设计思想是将MapReduceV1中JobTracker的两个主要功能——资源管理和作业调度拆分成两个独立的服务:一个全局的资源管理器Resource Manager和多个针对Hadoop应用的Application Master。ResourceManager负责整个Hadoop系统中所有应用的资源管理和分配,每个应用对应一个Application Master实例,负责相应的调度和协调。每个节点上有一个Node Manager实例,监控应用程序的资源使用情况,并且向Resource Manager汇报,以及负责处理来自Application Master启动或停止container的请求。容器container是YARN对资源的一种抽象,可以看做资源分配的单位。