MR客户端Client源码分析

本文深入分析了大数据环境中客户端(Client)提交MapReduce任务的流程,包括waitForCompletion方法下的submitJobInternal步骤,如检查输入输出目录、计算文件切片数量等。在计算文件切片时,重点讲解了FileInputFormat如何根据minSize和maxSize确定切片大小,并生成切片清单。每个切片包含了文件、偏移量、大小和位置信息,用于任务分配和执行。

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

大数据

客户端Client源码分析

客户端提供的资源:jar包 split清单 配置生成的xml文件


*waitForCompletion --提交

​ *submit

​ *submitJobInternal 执行5件事

​ 1.检查job的输入输出目录

​ 2.*计算文件切片数量

​ 3.设置/准备job运行环境

​ 4.拷贝当前job的Jar包和配置到HDFS系统目录–隐藏目录

​ 5.提交job到RS并且监控运行状态

​ *writeSplits

​ **writeNewSplits

​ *input

​ inputFormat<?, ?> input = ReflectionUtils.newInstance(job.getInputFormatClass(), conf);

​ *getInputFormatClass() 查看父类方法

​ *conf.getClass(INPUT_ FORMAT_CLASS_ATTR,TextInputFormat.class)

​ INPUT_ FORMAT_CLASS_ATTR在配置文件中找配置,如果用户有配置取用户配置,如果没有配置,取默认输入格式化类为文本Text类

​ *getSplits 查看父类方法FileInputFormat <k,v>

​ *minSize 默认1 maxSize 很大的值

​ *List 一个文件一个文件的处理,计算切片,输出文件中每一个切片,切片不可跨文件

​ *blkLocation 取文件的所有的块

​ *compteSplitSize 切片大小=块大小

​ return Math.max(minSize, Math.min(m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值