1.注意的小知识点
1 | 1.一个map task 处理一个InputSplit 数据(分片) |
2.InputFormat (输入数据的指定) 接口
1 | 1.getSplits方法(拿到分片) |
3.job.waitForCompletion流程
1 | waitForCompletion{ |
4.writeSplits(job, submitJobDir) 讲解
1 | 最重要的是求多少个分片 (map task的个数) |
5.小文件合并 讲解
1 | 如果有四个小文件 没有设置小文件合并 ,(一个文件如果没有超过块大小 它就是一个 分片) |
第一阶段:相当于是虚拟的
1 | 1m <4m 即一个块 1m |
第二阶段: 不足4 先补满4 即下满面2 会被拆成 1+1
1 | 4<1+2+1 = 4<4*1.1 即第一个分片 |
6.NLInputformat (n行为一个split) 按照行数进行分片
eg:使用场景 :
1 | 1. 100 列 * 100 行 5G |
7.分区
分区是默认根据key来定义的,也就是map输出来做分区
1 | 1.Hashpartitioner |
1 | 2.自定义分区 |
8.排序
1 | 排序 是按照 key 进行排序的 |