hadoop distributedcache使用

本文详细介绍了Hadoop DistributedCache的作用,它用于分发文件到各节点并长期保存,有公共和私有两类,根据配置定期清理。还强调了在不同版本中清理机制的区别,并提供了具体的使用示例,包括创建符号链接的方法。

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

主题思想:

hadoop distributedcache的作用将文件分发到各个结点本地磁盘保存,并且用完后并不会被立即清理的,而是专门的一个线程根据文件大小限制(local.cache.size设定,默认是10G)

和文件/目录数目(mapreduce.tasktracker.local.cache.numberdirectories默认是是10000)上限周期性进行清理(默认60s,mapreduce.tasktracker.distributedcache.checkperiod控制)

保存到本地的使用对于public级别的文件(当权限设定最后一个其他用户可执行权限x的时候)

会被所有用户共享,只会下载一次,所有用户即可使用,如果最后一个其他用户无权限,则是private私有的,只有该用户的作业能重用.

public的时候,本地会保存在公共目录 ${mapred.local.dir}/taskTracker/distcache

private的时候,本地会保存在私有目录${mapred.local.dir}/taskTracker/${user}

有两点注意:

1、mapreduce.tasktracker.local.cache.numberdirectories,mapreduce.tasktracker.distributedcache.checkperiod参数并没有提供在相应的XML文件配置,而是在源码设置,对应的类TrackerDistributedCacheManager

2、老版本hadoop-0.20.2的distributedcache的清理机制较简单,每次下载缓存文件的时候发现大小超过10G,则进行清理工作,清理当前没有作业正使用的本地缓存文件,而且应该也是没有public,private机制的,在源代码没看到。

具体见代码:

 public static Path getLocalCache(URI cache, Configur

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值