Hadoop大数据——mapreduce的Distributed cache

本文深入探讨了MapReduce框架下的MapSideJoin技术,详细讲解了其工作原理和应用场景。通过将文件分发到每个运行任务的节点,MapSideJoin允许在mapper或reducer中直接使用本地文件API访问这些文件,从而实现高效的数据处理。

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

应用场景:map side join
工作原理:
通过mapreduce框架将一个文件(本地/HDFS)分发到每一个运行时的task(map task /reduce task)节点上(放到task进程所在的工作目录)
获取的方式: 在我们自己的mapper或者reducer的代码内,直接使用本地文件JAVA ----API 来访问这个文件
示例程序:

  • 首先在 job对象中进行指定:
job.addCacheFile(new URI("hdfs://hadoop-server01:9000/cachefile/b.txt"));
//分发一个文件到task进程的工作目录
job.addCacheFile(new URI("hdfs://hadoop-server01:9000/cachefile/b.txt"));
//分发一个归档文件到task进程的工作目录
//job.addArchiveToClassPath(archive);
//分发jar包到task节点的classpath下
//job.addFileToClassPath(jarfile);
  • 然后在mapper或者reducer中直接使用:
in = new FileReader("b.txt");
reader =new BufferedReader(in);
String line = reader.readLine()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学亮编程手记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值