Hadoop 文档

General

Common

HDFS

MapReduce

MapReduce REST APIs

YARN

YARN REST APIs

YARN Service

Submarine

Hadoop Compatible File Systems

Auth

Tools

Reference

Configuration

本文档介绍了使YARN成为一流平台的一些关键概念和功能,以便在本地支持YARN上长期运行的服务。

YARN上的服务框架(ApplicationMaster)

实施了一个容器编排框架,以帮助在YARN上部署服务。简而言之,该框架是一个ApplicationMaster,它可以根据用户提供的服务定义从ResourceManager请求容器,并在整个集群中根据放置策略启动容器。它还完成所有繁重的工作,例如解决服务定义和配置,管理组件生命周期(例如自动重启发生故障的容器),监视组件的健康和就绪状态,确保组件之间的依赖关系启动顺序,伸缩组件/升级组件,升级组件框架的最终目标是确保服务已启动并按照用户期望的状态运行。

此外,它利用YARN内核中的许多功能来完成调度约束,例如亲和力和反亲和力调度,服务的日志聚合,在容器出现故障时自动重新启动容器以及对容器进行就地升级。

用于在YARN上部署/管理服务的Restful API服务器

开发了一个宁静的API服务器,以允许用户通过简单的JSON规范在YARN上部署/管理他们的服务。这样可以避免用户处理低级API,无需编写复杂的代码即可将其服务引入YARN。REST层充当基于REST的统一条目,用于YARN服务的创建和生命周期管理。这里的服务范围从简单的单组件应用程序到需要特殊编排需求的最复杂的多组件应用程序。请参阅本API文档的详细的API单证。

API服务器是无状态的,这意味着用户可以简单地启动多个实例,并在它们前面放置一个负载均衡器以支持HA,分配负载等。

服务发现

DNS服务器被实现为通过以下标准机制在YARN上发现服务:DNS查找。

该框架将诸如主机名和ip之类的容器信息发布到YARN服务注册表中。DNS服务器通过将它们转换为DNS记录(例如A记录和SRV记录)来从本质上公开YARN服务注册表中的信息。然后,客户端可以通过标准DNS查找来发现容器的IP。

YARN Service Registry的先前读取机制仅限于特定于注册表的(java)API和REST接口,并且很难连接现有的客户端和服务。基于DNS的服务发现消除了这一差距。有关更多详细信息,请参考此服务发现文档