YARN学习总结-第十八节-YARN-Shared-Cache

YARN-Shared-Cache

共享缓存包括4个主要功能:

1.共享缓存客户端

2.HDFS目录扮演缓存

3.共享缓存管理器(SCM)

4.本地化服务和上传器

用户或者开发者需要跟共享缓存客户端交互,客户端负责与共享缓存管理器交互,计算应用资源校验和,并且在共享缓存获取应用资源。

共享缓存目录

共享缓存目录通过HDFS权限进行保护,并且全局只读,只允许信任用户去写。这个目录只有共享缓存管理和在NM的uploader修改。资源通过校验和被分到各个子目录。

/sharedcache/a/8/9/a896857d078/foo.jar
/sharedcache/5/0/f/50f11b09f87/bar.jar
/sharedcache/a/6/7/a678cb1aa8f/job.jar

共享缓存管理器

共享缓存管理器负责处理从客户端发来的请求,并且管理共享的内容。它负责在HDFS中的元数据和持久化数据。它由两个主要的组件组成。一个后端存储和一个清理服务。SCM是一个单独的守护进程,它可以运行在任何节点上。这样,管理员可以在不影响其他组件的同时,启动,停止SCM。

后端存储负责维护和持久化共享存储的元数据。包括在缓存中的资源,资源最后一次被使用,当前使用资源的应用。目前是使用内存存储,并且在重启后会重建。

清理服务负责确保不再使用的资源会被从缓存中移除。它周期性的扫描资源,清理陈旧的和没有应用使用的资源。

共享缓存上传器和本地化服务

上传器是一个服务,运行在NM,并且上传资源到共享缓存。负责确认资源校验和,上传资源到HDFS,通知共享缓存管理器一个资源已经被添加到缓存。需要注意的是,uploader是异步的,不会阻塞yarn应用的启动。并且,添加资源到缓存用一种友好的方式,不会影响运行的应用。一旦uploader上传一个资源到共享缓存,YARN使用NM本地化机制使得资源可获得。

部署YARN应用使用共享缓存

如果需要使用共享缓存,需要在提交的时候使用缓存客户端,缓存客户端会返回一个已经缓存的资源的URL,如果要使用缓存资源,YARN应用需要明确使用URL去创建本地化资源对象并且设置setShoudBeUploadedToSharedCache为true。

String localPathChecksum = sharedCacheClient.getFileChecksum(localPath);
URL cachedResource = sharedCacheClient.use(appId, localPathChecksum);
LocalResource resource = LocalResource.newInstance(cachedResource,
      LocalResourceType.FILE, LocalResourceVisibility.PUBLIC
      size, timestamp, null, true);

管理共享缓存

设置共享缓存

管理员可以通过下列步骤初始化设置共享缓存:

1.创建HDFS目录,默认是/sharecache

2.设置共享缓存目录0755

3.允许运行共享缓存管理器和NM的用户访问此目录

4.在yarn-site.xml里面设置属性yarn.sharedcache.enabled=true,yarn.sharedcache.root-dir=/sharecache。

5.启动共享缓存管理器

$ yarn --daemon start sharedcachemanager

配置参数

yarn.sharecache.enabled:false

yarn.sharecache.root-dir

yarn.sharecache.nested-level:目录嵌套级别,默认为3

yarn.sharecache.store.class:org.apache.hadoop.yarn.server.sharedcachemanager.store.InMemorySCMStore

yarn.sharecache.app-checker.class:org.apache.hadoop.yarn.server.sharedcachemanager.RemoteAppChecker

yarn.sharecache.store-in-memory.staleness-period-mins:10080

yarn.sharecache.store-in-memory.inital-dalay-mins

yarn.sharecache.store-in-memory.check-period-mins

yarn.sharecache.admin.address:8047

yarn.sharecache.admin.thread-count

yarn.sharecache.webapp.address:8788

yarn.sharecache.cleaner.perod-mins:清理任务运行频率

yarn.sharecache.cleaner.initial-delay-mins

yarn.sharecache.cleaner.resouce-sleep-ms

yarn.sharecache.uploader.server.address:8046

yarn.sharecache.uploader.server.thread-count:50

yarn.sahrecache.client-server.address:8045

yarn.sharecache.client-server.thread-count:50

yarn.sharecache.checksum.algo.impl:org.apache.hadoop.yarn.sharedcache.ChecksumSHA256Impl

yarn.sharecache.nm.uploader.replication.factor:10

yarn.sharecache.nm.uploader.thread-count:20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值