大数据技术之hadoop——(九)InputFormat数据输入与切片机制

本文深入探讨了Hadoop中InputFormat的数据输入,重点关注切片与MapTask并行度的关系。文章详细解释了MapTask并行度的决定机制,包括数据块、数据切片的概念,并介绍了FileInputFormat的切片过程,强调了TextInputFormat和CombineTextInputFormat的实现及应用场景。通过对CombineTextInputFormat的分析,展示了如何优化小文件过多的场景,减少MapTask的数量,提高处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


废话不多说直接上硬菜:
在这里插入图片描述
在这里插入图片描述
上图为整个MapReduce运行的流程图,那么本篇文章就从数据输入Inputformat入手


一、InputFormat数据输入

1.1、切片与MapTask并行度决定机制

MapTask 的并行度决定 Map 阶段的任务处理并发度,进而影响到整个 Job 的处理速度。

思考:1G 的数据,启动 8 个 MapTask,可以提高集群的并发处理能力。那么 1K 的数据,也启动 8 个 MapTask,会提高集群性能吗?MapTask 并行任务是否越多越好呢?哪些因素影响了 MapTask 并行度?

1.1.1、MapTask并行度决定机制

【1】数据块(block):HDFS物理上的存储单元

【2】数据切片:数据切片只是在逻辑上对输入进行分片,并不会在磁盘上将其切分成片进行存储。数据切片是 MapReduce 程序计算输入数据的单位,一个切片会对应启动一个 MapTask。
在这里插入图片描述

1.1.2、切片过程解析

(1)程序先找到你数据存储的目录。

(2)开始遍历处理(规划切片)目录下的每一个文件

(3)遍历第一个文件ss.txt

​      a)获取文件大小fs.sizeOf(ss.txt)

​      b)计算切片大小

computeSplitSize(Math.max(minSize,Math.min(maxSize
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值