MapReduce工作机制
Maptask工作机制
ReduceTask工作机制
InputFormat
- TextInputFormat
- CombinerTextInpuFormat
- 切片机制

- 切片
- MapTask并行度由数据切片决定
- 提交 xml split jar
- 剩余数据切片大小<1.1 不做分割
Shuffle
Partition
- 默认-HashPartition
return (key. hashCode()& Integer. MAX VALUE)% numReduceTasks;
自定义
-
OutputFormat
TaskOutputFormat
- 自定义
Join操作
解决数据倾斜
Reduce Join
- Map中传多个表,Reduce中取出
set
- Map中传多个表,Reduce中取出
- Map Join
- 加载缓存,字符串拼接
Yarn工作机制
调度器
- FIFO
- 容器调度器(Capacity Scheduler)
- 多队列+资源分配
- 公平调度器(Fair Scheduler)
- 多队列+队列内评分资源
- “缺额”— 刚到,获取资源不足
!!Shuffle
为什么需要shuffle??? map后 避免reduce任务分配到大量数据
map端
- 环形缓存区缓存
- 在内存中经过分区、排序后溢出到磁盘
- 合并溢出文件
reduce端
- 接收到不同 map 任务传来的有序数据,合并排序。

