视界:用于可扩展后处理的 Hermes 服务

目录

最近验收的某个工程项目使用到了气象大数据云平台的加工流水线制作图形产品。 为了对比产品后处理方面国内外的发展现状,重新温习下这篇由 ECMWF 发表于 2017 年的文章。

声明

本文正文内容翻译自 ECMWF Newsletter Number 153 - Autumn 2017 中 Florian Rathgeber,Tiago Quintino 和 Baudouin Raoult 的文章《The Hermes service for scalable post-processing》,版权归原作者所有。

翻译底稿来自 Google 翻译。

正文

ECMWF 已经开发了一种可扩展的后处理分布式计算服务,称为 Hermes。 这项新服务将使计算更接近数据,从而支持 ECMWF 的可伸缩计划(ECMWF’s Scalability Programme),从而节省了带宽并减少了对客户端处理能力的需求。

译者注:Hermes 是希腊神话中的诸神传令的使者。参见 Wikipedia 词条

动机

30多年来,用户一直在从 ECMWF 的气象归档和检索系统(Meteorological Archiving and Retrieval System,MARS)请求数据。 内部用户可以通过命令行客户端访问 MARS,该客户端将从存档中提取数据到用户的工作站,并在本地执行任何请求的后处理。 另一方面,外部用户经常使用 MARS Web API,此时后处理是在为 ECMWF 的 Web 基础结构提供服务的一台计算机上进行的,处理过的数据通过 HTTP 发送给用户。

随着分辨率的提高以及集合预报的战略重要性,将整个要素场转移到客户端以进行后处理可能会占用大量空间并浪费带宽,尤其是在长时间序列的数据中仅提取一个小区域或单个点的情况下。 由于客户端可能没有必要的处理能力或后处理可能花费太长时间,因此需要对后处理执行的位置进行更多控制。

ECMWF 于 2014 年启动的可伸缩性计划认识到需要使计算更接近数据。 作为该计划的一部分,Hermes 项目开发了一种分布式计算服务,以在使用类似体系结构的同时扩充 MARS。 Hermes 使用新的插值包 MIR,专注于后处理领域。 该项目的成功完成意味着 Hermes 软件包可以成为 ECMWF 未来数据处理系统开发的一部分。

Hermes 架构

Hermes 工作流。该图显示了处理由客户端(1)发送给 Hermes broker 并由后者分派给 worker(2)的 MARS 请求的工作流程,后者从 MARS(3/4)检索输入要素场数据,调用 MIR 进行后处理,将处理后的数据发送回客户端(5),最后通知 broker(6)和客户端(7)。

Hermes 采用分布式计算的 broker-worker 模型,在这种模型中,客户端将请求发送给 broker,broker 将所有传入的请求排队,以分派给 worker。 所有通信都是使用特殊编码的消息通过传输控制协议(Transmission Control Protocol,TCP)完成的。 该系统是事务性的,并且通过重新提交任何未能处理的请求自动从故障中恢复,例如,因为 worker 节点崩溃或网络连接丢失。 worker 是“无状态的”,这意味着它们独立处理任何工作任务。 它们可以随时与 broker 连接或断开连接,从而可以根据负载和可用的计算资源来动态扩展和缩小系统。 Hermes 不受任何特定体系结构,网络拓扑,互连甚至共享文件系统的束缚,并且已成功部署在台式机,ECMWF的高性能计算工具,专用集群和云服务中。

Hermes 利用了 ECMWF 开发和维护的许多软件栈。 Hermes 基于成熟的 MARS 技术构建,能够提供与 MARS 相同的服务质量(QoS),并具有相似的弹性。

Hermes 作为插值服务

为了满足上面提到的可伸缩后处理的需求,最初开发了一个原型,其中 Hermes 执行插值服务。 添加了对 MARS 协议(客户端和服务器)的支持,从而允许 Hermes broker 与 MARS 服务器完全集成,并响应用户熟悉的广泛部署的 MARS 客户端的请求。 如图所示,与先前设置的关键区别在于,任何后处理均在服务器端由 Hermes worker 执行,并且仅将处理后的数据发送回用户。 这样可以减少带宽需求,使处理过程更接近数据,并可以将数据传递到瘦客户端(例如 Python)。

Hermes 的第一个部署将与 MARS 一起使用,为 Climate Data Store 提供内插的 ERA5 气候再分析数据,Hermes 的 worker 将使用新的内插软件包 MIR(ECMWF Newsletter No. 152, pp 36–39)来处理要素场。 这些 worker 将与 MARS data movers 部署在一起,以最大程度地减少不必要的数据移动并优化资源使用。

思考

Hermes 服务主要用于响应 MARS 客户端请求,而气象大数据云平台的加工流水线似乎更侧重于对批量任务的调度。 但两者的思想也有共通之处,即在更接近数据的地方进行计算,并将计算任务分发到分布式集群中的各个节点中。

我在今年验收通过的青年基金课题《基于分布式调度的绘图技术研究》中也采用类似 Hermes 服务的架构,使用消息中间件将任务分发给各个工作节点。 下一步应该考虑是否能利用加工流水线构造响应客户端请求的服务,这样就能将研究成果与实际的运行环境相结合。

参考

查看原文请访问:

https://www.ecmwf.int/en/newsletter/153/news/hermes-service-scalable-post-processing

ECMWF 通讯中关于产品方面两篇更新的文章:

视界:ECMWF产品发布系统的新功能

视界:ECMWF 产品数据存储(ECPDS)