MapReduce的Map Size Join以及Distributed Cache

本文详细介绍了Hadoop中DistributedCache的作用及其实现机制,通过具体实例展示了如何利用DistributedCache进行Map-Side Join操作,提高大数据处理效率。

 

首先介绍Distributed Cache(分布式缓存),主要功能是把DataNode(客户端)一些小的文件送到DataNode上。

1. 通过job.addCacheFile(new Path(filename).toUri)

2.通过job.addCacheFile(new URI("xx/xxx/xxx/xx.json#customer_type"))

通过1和2来传过去(都是URI 就是方便你知道在客户端上这些文件的位置  )

如果知道文件路径的话,new File正好帮你创建一个。

如果不知道文件路径,可以通过context一口气获取所有缓存的文件,放到一个列表里,这样想拿谁都可以。

客户端某个文件的内容会被拿到DataNode,但不会修改这些内容,拿过来默认是和原来的文件一样的名字。#号可以重新起名。

 

 

Map-Side Join就是这样,在mapper的setup方法里,把这些小表拿过来

erFile:File = new File("./er.csv") 

变成其他格式 比如Hashtable

然后和大表对照做Join

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值