千家信息网

如何进行MapReduce中的JobSplit源码分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关如何进行MapReduce中的JobSplit源码分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MapReduce源码
千家信息网最后更新 2026年11月02日如何进行MapReduce中的JobSplit源码分析

这篇文章将为大家详细讲解有关如何进行MapReduce中的JobSplit源码分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

MapReduce源码分析 - JobSplit

根据MapRudece的原理,我们从4个过程去分析MR的源码:

  • Split阶段;

  • MapTask阶段;

  • Shuffle阶段;

  • ReduceTask阶段;

下面首先介绍Split阶段的源码。

Split源码分析

  • MR是通过JobSubmitter.submitJobInternal提交给RM的

  • 在submitJobInternal中通过writeSplits(JobContext job, Path jobSubmitDir)将job的输入文件进行split

  • writeSplit只是对新旧api进行了下封装,根据你的代码选择新旧api,这里调用writeNewSplits使用新API对file进行split

  • 整个切片的逻辑过程主要就是在writeNewSplit里

① writeNewSplits源码分析

进入writeNewSplits()方法,可以看出该方法首先获取splits数组信息后,排序,将会优先处理大文件,最终返回mapper数量。这其中又分为两部分:确定切片数量 和 写入切片信息。 确定切片数量的任务交由FileInputFormat的getSplits(job)完成,写入切片信息的任务交由JobSplitWriter.createSplitFiles(jobSubmitDir, conf, jobSubmitDir.getFileSystem(conf), array)方法,该方法会将切片信息和SplitMetaInfo都写入HDFS中。return array.length,返回的是map任务数,默认map的数量是: default_num = total_size / block_size;

其内部逻辑主要分为以下几个步骤:

  • 创建InputFormat实例,用实例调用getSplits方法对文件进行切分,getSplits内部是切分的主要逻辑;

  • 将切片文件根据split的大小进行sort逆序排序;

  • createSplitFiles:将保存切片信息的array数组落地到文件;

② getSplits源码分析

getSplits主要是将files进行切片,将文件路径path、偏移量(即起始位置,是该split在整个文件中的起始位置)、切分大小splitSize、偏移量所在block的locations信息Host和在内存中的host信息写入FileSplit对象中,一个split对应一个对象,最后放入splits中返回。

③ createFile源码分析

createSplitFiles创建的文件包括两个,分别是记录切片的切片文件和记录切片元数据的切片元数据文件 。

补充内容:

getSplits方法中split切片的大小

  • 首先要区分两个概念:块(block)和切片(split)。块是HDFS中的概念,文件在HDFS中是以块为单位进行存储。切片是MapReduce中的概念;

  • split的大小由公式可知,取决于minSize、blockSize、maxSize三者之间的大小关系;从而也决定了split和block块的大小关系,我们在实际使用中要保证split和block是一对一的关系;

关于如何进行MapReduce中的JobSplit源码分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 源码 分析 信息 大小 方法 阶段 数量 任务 内容 概念 逻辑 两个 位置 实例 对象 数据 数组 文章 新旧 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技网 云信互联网科技有限公司 互联网和科技技术 互联网通讯科技 互联网巨头科技公司 奇酷互联网科技公司 米客互联网科技 人人互联网科技是培训 上海电发互联网科技有限公司 济南华为互联网科技产业总部基地 世界互联网科技公司市值排名 崇明区互联网教育科技诚信经营 中国航天科技大学国际工业互联网 中国互联网十大科技股排名 广州新华互联网科技学校电竞方面 爱医互联网络科技 恒生互联网科技业指数调整周期 无锡工业互联网科技有限公司 互联网营销推广黑科技 张家口科技产业互联网平台 深圳市人人互联网科技有限公司 互联网科技工作委员会副主任毛军 科技和互联网公司 广州互联网科技公司 互联网科技作文 云创客互联网科技公司 温州喔噻互联网科技有限公司 花神(南京)互联网科技有限公司 注册互联网科技公司经营范围大全 互联网科技大佬云集
0