Hadoop之split

本文详细阐述了在大数据处理过程中,如何通过合理划分HDFS文件为多个可序列化的split来提升Map任务的执行效率。通过细粒度的数据切片,实现更高效的负载均衡,确保集群内各节点的性能均衡,从而显著提高整体处理速度。文章还讨论了切片大小与HDFS block大小的关系,以及不同切片大小对Map任务效率的影响,包括网络传输成本与本地任务处理效率的权衡。

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

文件上传至HDFS之前,InputFormat接口的getSplits方法会将文件划分切割成为若干个可序列化的split

一个大数据的文件一般要划分为若干个split,因此,处理一个split的时间远远小于处理整个大数据文件的时间,根据木桶效应,整个Map处理的速度则是由群集中所有运行map节点的最慢的那个节点决定,如果将splits分成较为细粒度的数据大小,而同时对不同的节点计算机根据其速度分配splits个数,可以获得更好的负载均衡。

一般大多数的split与HDFS中的block大小相同,都为64M,这样做的好处是使得Map可以在存储有当前数据的节点上运行本地的任务,而不需要通过网络进行跨节点的任务调度。

如果一个Map中所需要的数据大于一个block的大小64M的时候,那么部分数据很可能存储到别的节点上,处理的时候必然会通过网络跨节点数据传输,则Map无疑是增加了等待时间从而降低了Map处理效率

如果一个Map中所需要的数据小于block的大小64M的时候,那么会对当前节点block容量的浪费,同时是增加了split的个数,Map对split进行计算并且上报结果,关闭当前计算打开新的split均需要耗费资源,这样无疑也降低了Map处理效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值