开发者学堂课程【Hadoop 分布式计算框架 MapReduc:MapJoin 案例分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/94/detail/1550
MapJoin 案例分析
内容介绍:
1. Map Join 简介
l 使用场景
l 优点
l 具体方法
2. Map 端表合并案例分析 (Distributedcache )
l 1 ) DistributedCacheDriver 缓存文件
l 2)读取缓存的文件数据
1.Map Join简介
1.使用场景
Map Join 适用于一张表十分小、一张表很大的场景。
2.优点
思考:在 Reduce 端处理过多的表,容易产生数据倾斜,怎么办?
在 Map 端缓存多张表,提前处理业务逻辑,这样增加 Map 端业务,减少 Reduce端数据的压力,尽可能的减少数据倾斜。
3.具体办法:采用 DistributedCache
(1)在 Mapper 的 setup 阶段,将文件读取到缓存集合中。
(2)在驱动函数中加载缓存。
//缓存普通文件到 Task 运行节点。
job.addCacheFile(new URI(""file://e:/cache/pd.txt""));
2.Map 端表合并案例分析 (Distributedcache )
1 ) DistributedCacheDriver 缓存文件
// 1加载缓存数据
job.addCacheFile(new
URI("file:/l/e:/cache/pd.txt"));
// 2 Map 端 join 的逻辑不需要 Reduce 阶段,设置 ReduceTask 数量为0
job.setNumReduceTasks(0);
2)读取缓存的文件数据
setup()方法中 //1获取缓存的文件 //2循环读取缓存文件一行 //3切割 //4缓存数据到集合 //5关流
|
mao万法中 //1获取一行 //2截取 //3获取订单id //4获取商品名称 // 5拼接 |