本文是对MR案例:Map-Join的解读。
在hadoop中,使用全局变量或全局文件共享的几种方法
- 使用Configuration的set()方法,只适合数据内容比较小的场景
- 将共享文件放在HDFS上,每次都去读取,效率比较低
- 将共享文件放在DistributedCache里,在setup()初始化一次后,即可多次使用,缺点是不支持修改操作,仅能读取
使用 DistributedCache 来共享一些全局配置文件或变量时,需要注意:
- 共享文件必须要上传到hdfs上。【共享文件的默认访问协议为(hdfs://)】
- 通过 job.addCacheFile(new Path(args[0]).toUri()); 方法加载共享文件。
- 在Mapper类的setup()初始化方法中读取并处理共享文件。【setup()方法整个Job执行过程中只执行一次】
- 在map()和reduce()方法中,可以使用处理后的共享文件
DistributedCache作用:①共享全局的缓存文件。②在执行一些join操作时,将小表放入cache中,来提高连接效率。
时间: 2024-12-12 18:32:04