1.HDFS优化 2.MapReduce优化 MapReduce中实现Join操作 Map join:适合小文件和大文件的join Join过程发生在Map端
每个Map task都可以直接读取到小文件内容 与大文件的每一个块进行join.
分布式join
小文件:文件大小 < 1个块的大小
Reduce join join过程发生在Reduce
目标数据:
map端 读取2个文件,打标签,2个文件有主外键关系
shuffle 主键为key,剩余值为value
reduce端 判定每一条记录,
先取出标签的数据:只有一条
然后取出剩余数据,进行字符串拼接
Semi join:Map和Reduce都有 (1)将不需要join的数据在Map端直接过滤掉 将主表A中所有ID放入缓存(分布式缓存)
取出B表的每个Id,判定B的id是在分布式缓存中存在,如果不存在,直接过滤掉
(2)reduce 端join