您的位置:首页 > Web前端 > Node.js

Yarn源代码分析之旅---NodeManager---Container管理之资源本地化

2014-02-20 11:43 399 查看

概述

ContainerManagerImpl内部包含一个负责资源本地化的服务,它负责Container所需资源的本地化,能够根据描述从HDFS上下载Container所需的文件资源并尽量将他们分摊到各个磁盘上,以防止出现访问热点。此外还会为下载的文件添加访问控制权限,并为之施加何时的磁盘空间使用份额。
初始化时会生成一个ScheduledThreadPoolExecutor类型的对象cacheCleanup,负责清理工作。

serviceInit

检查conf的合法性,然后初始化资源跟踪器LocalResourcesTrackerImpl,得到本地资源上线文,设置访问权限,接下来根据LocalDirsHandlerService得到本地目录,然后循环将每个目录下面的UserCache,FileCache以及nmPrivate文件夹改名,加上后缀DEL_时间戳,交给DeletionService去删除它们。
接着,新建一套全新的,包括UserCache,FileCache以及nmPrivate目录,以及log目录。接着初始化一些变量,包括cache的大小,清理时期,localization的server地址,生成LocalizerTracker服务,添加到服务列表。

serviceStart

cacheCleanup线程启动,生成LocalizationProtocol RPC服务端,并启动之。

LocalizerTracker

TODO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: