【MapReduce】03.MapReduce框架原理

目录

1.InputFormat数据输入

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

1.2.Job提交流程源码和切片源码

1.3.FileInputFormat切片机制

1.4.TextInputFormat

1.5.CombineTextInputFormat切片机制

1.6.CombineTextInputFormat


1.InputFormat数据输入

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

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

MapTask并行度决定机制

        数据块:Block是HDFS物理上的数据分割,数据块是HDFS存储数据单位

        数据切片:数据切片是MapReduce程序计算输入数据的单位,一个切片会对应一个MapTask(逻辑切分,并非物理切分)

        1.一个Job的Map阶段并行度由客户端在提交Job时的切片数决定

        2.每一个Split切片分配一个MapTask并行实例处理

        3.默认情况下,切片大小=BlockSize

        4.切片时不考虑数据集整体,而是逐个针对每个文件单独切片

1.2.Job提交流程源码和切片源码

1)Job提交流程源码

2)FileInputFormat切片源码

        1.程序先找到数据存储的目录

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

        3.遍历第一个文件

                3.1.获取文件大小fs.sizeOf(txt)

                3.2.计算切片大小computeSplitSize(Math.max(minSize.Math.min(maxSize.blocksize)))=blocksize=128M

                3.3.默认情况下,切片大小=blocksize

                3.4.开始切片,(0-128M)(128-256M)(256-300M)每次切片时,都要判断切完剩下的部分是否大于块的1.1倍,不大于1.1倍就划分一块切片

                3.5.将切片信息写到一个切片规划文件中

                3.6.InputSplit只记录切片的元数据信息,比如起始位置、长度以及所在节点列表

        4.提交切片规划文件到Yarn上,Yarn上的MrAppMaster就可以根据切片规划文件计算开启MapTask个数

1.3.FileInputFormat切片机制

1)切片机制

        1.简单的按照文件的长度进行切片

        2.切片大小,默认等于bolck大小

        3.切片时不考虑数据集整体,而是逐个针对每一个文件单独切片

2)FileInputFormat切片大小的参数配置

        源码中计算切片大小的公式

        Math.max(minSize,Math.min(maxSize,blockSize))

        mapreduce.input.fileinputformat.split.minsize=1(默认值为1)

        mapreduce.input.fileinputformat.split.maxsize=Long.MAXValue(默认值Long.MAXValue)

        因此,默认情况下, 切片大小=blockSize

        切片大小设置

        maxsize(切片最大值):参数如果调的比blockSize小,则会让切片变小,而且等于配置的这个参数的值

        minSize(切片最小值):参数调的比blockSize大,则可以让切片变得比blockSize大

        获取切片信息API

        

//获取切片的文件名称
String name = inputSplit.getPath().getName();
//根据文件类型获取切片信息
FileSplit inputSplit = (FileSplit)context.getInputSplit();
1.4.TextInputFormat
1.5.CombineTextInputFormat切片机制

1)应用场景

        用于小文件过多的场景,可以将多个小文件从逻辑上规划到一个切片中,这样多个小文件就可以交给一个MapTask处理

2)虚拟存储切片最大值设置

        CombineTextInputFormat.setMaxInputSplitSize(job,4194304);//4M

3)切片机制

        生成切片过程包括:虚拟存储过程和切片过程两部分

1.6.CombineTextInputFormat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/442289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Qt开发QHostInfo主机地址查询组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QHostInfo组件实现对主机地址查询功能…

IP地址:现代网络通信的基础

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。它是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。这种地址形式使得互…

第九篇 – 过程发现(Process Discovery)是如何赋能数字化市场营销全过程?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒体…

【Python】成功解决AttributeError: ‘MyClass‘ object has no attribute ‘my_attribute‘

【Python】成功解决AttributeError: ‘MyClass’ object has no attribute ‘my_attribute’ 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门…

魅力女神节•巾帼绽芳华 | 联诚发开展三八国际妇女节慰问活动

为进一步丰富女职工精神文化生活,展现新时代巾帼风采,弘扬积极向上、奋勇争先的精神风貌。3月8日,联诚发LCF开展了三八妇女节慰问活动,为全体女职工送上温馨的祝福和节日的问候。 清晨,活动现场便已经装饰一新&#xf…

【kerberos】hadoop集群使用keytab认证的逻辑

一、背景: haoop的kerberos认证核心是org.apache.hadoop.security.UserGroupInformation类。 UserGroupInformation一般有两种:(1)apache原生的(2)cdh hdp改良过的,即cloudera改良过的。 由此衍…

基于SpringBoot校园失物招领系统的设计与实现(程序+数据库+文档)

** 🍅点赞收藏关注 → 私信领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅** 一、研究背景…

Linux操作系统的vim常用命令和vim 键盘图

在vi编辑器的命令模式下,命令的组成格式是:nnc。其中,字符c是命令,nn是整数值,它表示该命令将重复执行nn次,如果不给出重复次数的nn值,则命令将只执行一次。例如,在命令模式下按j键表…

RabbitMQ篇

1.初始MQ 1.1. 同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,…

计算机网络——23网络层导论

网络层导论 网络层服务 在发送主机和接收主机对之间传送段(segment)在发送端将段封装到数据报中在接收端,将段上交给传输层实体网络层协议存在于每一个主机和路由器路由器检查每一个经过它的IP数据报的头部 网络层的关键功能 网络层功能 …

探秘WiFi 6技术:特性与优势解析

随着科技的飞速发展,无线网络技术也在不断演进,WiFi 6(802.11ax)作为最新一代的无线网络标准,正逐渐成为新一轮技术革新的引领者。本文将深入探讨WiFi 6模块的特性和优势,揭示其在无线通信领域的巨大潜力。…

(3)应用与信息

文章目录 前言 3.1 FlightDeck FrSky发射器应用程序 3.2 MAVLink2数据包签名(安全) 3.3 MAVLink高延迟协议 3.4 无线地面站连接中继器 1 概述 2 组件 3 设置 3.5 遥测无线电区域条例 3.6 用于OpenTX的Yaapu遥测脚本 前言 FlightDeck FrSky Transmitter AppMAVLink2 …

sizeof和strlen的详细万字解读

sizeof和strlen的对比 sizeof不是函数 侧面证明sizeof不是函数 如果是函数 应该需要有括号 不能落下来 strlen 只针对字符串 包含头文件 string.h 并且这个是个函数 随机数值 sizeof里面有表达式的话 表达式里面是不参与计算的 下面的s求出的是4 就是因为是不参与计算的 不…

重学SpringBoot3-WebMvcConfigurer接口

重学SpringBoot3-WebMvcConfigurer接口 WebMvcConfigurer基本信息为什么WebMvcConfigurer能配置底层行为实现WebMvcConfigurer举例1. 自定义格式化器和转换器2. 添加拦截器3. 配置静态资源4. 配置视图控制器 上一篇文章对 SpringMVC 重要配置类—— WebMvcAutoConfiguration 类…

httprunner结合pytest的自动化框架结构

2. 项目结构 2.1. 初代项目结构 3. 用例结构 - pytest 3.1. 单接口用例结构 # NOTE: Generated By HttpRunner v4.3.5 # FROM: testcases\data\data_20240229_test.json from httprunner import HttpRunner, Config, Step, RunRequestclass TestCaseData20240229Test(HttpRu…

数据集生成 YOLOV5 可训练的数据目录、并且可视化

1、前言 YOLOV5 训练数据的目录结构如下: 如果有测试集的话,也按照下面目录摆放即可 注意:这里的图片和标签文件名要严格对应!!后缀除外 关于YOLOv5介绍或者yolo格式的介绍参考之前专栏, 2、划分数据生成…

WPF 消息提示 类似toast方式

WPF里面的消息提示一般都是MessageBox.Show(),这种样式不是很好看,所以就想办法重新搞了一个类似弹出消息的功能。原理很简单,就是弹出一个新窗体,然后等几秒窗体自动关闭。 先上效果图: 新建一个MsgHelper.cs类&…

神经网络 梯度与神经元参数w、b关系;梯度与导数关系

参考:https://blog.csdn.net/weixin_44259490/article/details/90295146 概念 梯度与w的关系可以用梯度下降公式来表示:ww−α ∂ c o s t ∂ w \frac{\partial cost}{\partial w} ∂w∂cost​,其中w表示网络的权重, ∂ c o s t…

AI 辅助研发趋势 - 动动嘴完成代码?

目录 2024 年 AI 辅助研发趋势 方向一:AI辅助研发的技术进展 方向二:行业应用案例 方向三: 面临的挑战与机遇 方向四:未来趋势预测 方向五:与法规的影响 方向六:人才培养与教育 2024 年 AI 辅助研发…

141 Linux 系统编程18 ,线程,线程实现原理,ps –Lf 进程 查看

一 线程概念 什么是线程 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下) 进程:独立地址空间,拥有PCB 线程:有独立的PCB,但没有独立的地址空间(共享) 区别:在于是否共…