YARN的共享存储服务

本文介绍了YARN的共享存储服务,旨在提高资源利用率,减少带宽浪费。该服务包括SharedCacheManager、SharedCacheUploaderService和CleanerService等组件,通过资源的checksum值和目录深度管理文件,支持资源的上传、使用和清理。资源的清理策略基于staleness,当资源未被引用且访问时间超时,将被自动删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


在YARN上运行的任务,在任务正式开始运行之前,需要有一步资源的localization的过程,然后用户的任务才能顺利地跑起来。这个”资源“可以是用户依赖的库文件等任务运行所需要的文件。这些资源文件被YARN中此任务对应的Container所共享,这些Container会从一个共享存储的地方去下载这个资源文件。那么在此之前,这个资源文件还需要被上传到一个共享存储的地方。本文,笔者将要阐述的主题就是关于共享存储的主题。

YARN的共享存储服务的起源


在YARN早期的实现中,YARN将HDFS作为一个中间资源文件的存储媒介,然后后续的Container task根据资源路径从HDFS中download下文件。这个资源文件并不是完全共享的,它只作用于当前所属的应用,更准确地来说,它只作用于某个applicationId。在这种模式下,假设后续有完全相同的任务再次被执行,它还是要上传完全一样的文件到HDFS中,这无疑造成了带宽的浪费。

于是,YARN实现了一种真正意义上的完全共享的存储服务,它可以跨应用间提供资源的共享服务,下面开始进入本文的主题。

YARN的共享存储服务架构


共享存储服务的组件构成


YARN的共享存储服务并没有实现在现有的RM服务中,而是另外实现了一个独立的服务来做这个事情,名为ShardCacheManager。在这个Manager内,具体模块包含以下:

  • SharedCacheUploaderService,缓存资源上传服务,用以上传用户的资源文件。
  • CleanerService,缓存资源清理服务,清理stale的资源文件。
  • ClientProtocolService,用户提交使用资源的协议。
  • SCMAdminProtocolService,共享存储服务管理员接口服务,目前只要用于外界人工触发启动clea
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值