一、概述

Join: 将两个中的字段,通过公共字段进行关联!
MR :

  • 在Reduce端Join
    • 保证两个文件中的所有字段,都必须达到Reduce!需要将两个文件的所有字段封装为一个Bean
    • 在Map端,为每个文件,打上标记
    • 弊端:如果数据量大,reduce端处理过程耗时,容易出现数据倾斜!
  • 在Map端Join
    • 将大文件,作为输入文件,通过输入格式读入到MapTask
    • 小文件,使用分布式缓存,在进入Mapper时,提前从缓存中读取小文件中的内容,这样增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据倾斜。
    • 缓存文件: job.addCacheFile()
    • 读取缓存: jod.getCacheFiles()

image.png
image.png