Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)

作者 : admin 本文共794个字,预计阅读时间需要2分钟 发布时间: 2024-06-10 共2人阅读

Job那块的断点代码截图省略,直接进入切片逻辑
参考:Hadoop3:MapReduce源码解读之Map阶段的Job任务提交流程(1)

5、TextInputFormat源码解析

类的继承关系
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图
它的内容比较少
重写了两个父类的方法
这里关心一下泛型参数,发现是LongWritable, Text,这就是为什么之前我们开发WC案例的时候,固定传入LongWritable和Text类型的原因
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(1)
说明
TextInputFormat是默认的FileInputFormat实现类。按行读取每条记录。键是存储该行在整个文件中的起始字节偏移量, LongWritable类型。值是这行的内容,不包括任何行终止符(换行符和回车符),Text类型。
例如
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(2)

注意
如果我们在开发Mapper程序时,没有指定切片类,则默认选择TextInputFormat来进行切片

案例

准备4个文件
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(3)
依然用wordcount代码进行演练
指定文件路径
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(4)
如果,我们仅仅替换了文件源路径,那么,切片类默认选择的是TextInputFormat
根据之前学习的切片逻辑
splitSzie=32M
按照每个文件单独切片
由于,这里每个文件都是小文件,都不大于32M,所以切片数量为4个
所以,会生成4个MapTask线程来处理数据

查看执行日志:
1、切片数量日志
number of splits:4
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(5)
2、查看MapTask数量
attempt_local1807000288_0001_m_000000_0
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(6)
attempt_local1807000288_0001_m_000001_0
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(7)
attempt_local1807000288_0001_m_000002_0
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(8)
attempt_local1807000288_0001_m_000003_0
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(9)
3、查看Reducer线程数量
attempt_local1807000288_0001_r_000000_0
Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)插图(10)
通过日志,可以看出,和预计的一样

本站无任何商业行为
个人在线分享 » Hadoop3:MapReduce源码解读之Map阶段的TextInputFormat切片机制(3)
E-->