MapJoin 案例分析| 学习笔记

简介: 快速学习 MapJoin 案例分析

开发者学堂课程【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拼接

相关文章
|
6月前
|
SQL 存储 数据库
面试题19: 如何优化SQL查询?
面试题19: 如何优化SQL查询?
108 1
面试题19: 如何优化SQL查询?
|
6月前
|
SQL 存储 关系型数据库
场景+案例分析,SQL优化
场景+案例分析,SQL优化
70 3
|
SQL Oracle 关系型数据库
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
本篇文章讲解的主要内容是:***目前Oracle支持的行列互换有两种方式:case when、pivot\unpivot,我将通过几个案例来给大家详解如何通过这两种方式实现“行转列”,“列转行”的需求,并通过执行计划看case when、pivot\unpivot二者的底层逻辑关系以及效率上的影响。***
【SQL开发实战技巧】系列(二十四):数仓报表场景☞通过执行计划详解”行转列”,”列转行”是如何实现的
|
缓存 关系型数据库 MySQL
索引三表优化案例|学习笔记
快速学习索引三表优化案例
索引三表优化案例|学习笔记
|
关系型数据库 MySQL 开发者
索引两表优化案例|学习笔记
快速学习索引两表优化案例
111 0
索引两表优化案例|学习笔记
|
SQL 缓存 关系型数据库
SQL优化案例
SQL优化案例
|
SQL 关系型数据库 数据库
案例1:索引优化 | 学习笔记
简介:快速学习案例1:索引优化
|
SQL 关系型数据库 MySQL
案例2:SQL优化 | 学习笔记
简介:快速学习案例2:SQL优化
|
SQL 关系型数据库 MySQL
索引单表优化案例|学习笔记
快速学习索引单表优化案例
123 0
|
SQL Oracle 关系型数据库
实战 | 利用SQL “窗口函数” 分析高(三)班学生考试成绩和生活消费!(一)
实战 | 利用SQL “窗口函数” 分析高(三)班学生考试成绩和生活消费!(一)
实战 | 利用SQL “窗口函数” 分析高(三)班学生考试成绩和生活消费!(一)