Hadoop学习笔记--DistributedCache

mapreduce api的不同版本对于实现DistributedCache略有差异。


1.DistributedCache.addCacheFile(new URI("文件在HDFS中的位置"), conf);

这里需要注意:首先,conf指Configuration;其次,这句话必须写在Job job=new Job(conf,"作业名")之前!!


2.Path[] files=DistributedCache.getLocalCacheFiles(context.getConfiguration());

获得此Configuration的所有缓存文件本地地址,我们不需要管本地地址是什么,拿来用就行了。(最后解释原理)

这里有个大坑getLocalCacheFiles返回的是本地副本的地址,而getCacheFiles返回的是HDFS文件地址,所以普通Java I/O是读不到的!

多说一句,旧版api使用JobConf获得缓存文件。


3.使用各个文件的地址读写文件即可,即基本java I/O



DistributedCache原理:

所谓缓存,就是将HDFS上的文件下载备份到各个节点供本地使用,也因此,修改本地文件是没有意义的(它只是一个副本)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值