MapReduce框架原理之InputFormat数据输入
目录
前言
一、FileInputFormat切片机制(默认的切片机制)
1、切片原理
2、切片案例
3、问题与缺点
二、CombineTextInputFormat切片机制
1、切片原理
2、切片案例
总结
前言
我们在指定driver类的main方法向yarn提交任务的时候需要对数据进行切片,数据切片是逻辑上的,并不会对磁盘上的文件进行真正的拆分存储
提示:以下是本篇文章正文内容,下面案例可供参考
一、FileInputFormat切片机制(默认的切片机制)
FileInputFormat是mr中默认的切片机制。
1、切片原理
(1)遍历整个目录,对每个文件进行单独的切片处理。
(2)先拿到文件的大小,文件大小与128M的1.1倍进行比较,也就是与128*1.1=140.8M进行比较,如果文件大小 > 140.8,则以128M将文件切出一片;剩下的继续与140.8进行比较,只要大于就切一片;直到剩余部分小于等于140.8,将其分为一片。
2、切片案例
3、问题与缺点
(1)为什么与128M的1.1倍相比较?为了切片均匀,防止生成过小的切片。如果一个文件> 128M,与128M的1.1倍相比较,并且按照128M进行切片那么形成的最小切片>12.8。
(2)默认切片机制的缺点:无论文件多小他都会形成一个切片,启动一个map task。所以FileInputFormat切片机制不适合输入大量小文件。
二、CombineTextInputFormat切片机制
CombineTextInputFormat能够从逻辑上将小文件合并成大文件。
1、切片原理
(1)根据实际情况设置虚拟存储切片最大值:CombineTextInputFormat.setMaxInputSplitSize(job, 4194304);// 这里设置4m
(2)先形成虚拟的存储,遍历整个目录下的所有文件,依次和setMaxInputSplitSize值相比较(下面简称max)
文件大小 < max,该文件直接形成一个虚拟存储。
max < 文件大小 < max*2,把该文件平分成两个虚拟存储。
max*2 < 文件大小,先形成一个max大小的虚拟存储,剩余的继续循环比较。
(3)根据虚拟存储形成切片,每一个虚拟存储与max比较
虚拟存储 > max,形成一个切片。
虚拟存储 < max,和下一个虚拟存储形成一个切片。
2、切片案例
总结
如果目录下存在大量小文件我们解决方式有两种:
(1)从源头上解决,将文件合并之后在添加hdfs进行处理
(2)使用CombineTextInputFormat进行处理
MapReduce框架原理之InputFormat数据输入相关推荐
- Hadoop之InputFormat数据输入详解
Hadoop之InputFormat数据输入详解 Job提交流程和切片源码详解 FileInputFormat切片机制 CombineTextInputFormat切片机制 InputFormat接口 ...
- java大数据最全课程学习笔记(6)--MapReduce精通(二)--MapReduce框架原理
目前CSDN,博客园,简书同步发表中,更多精彩欢迎访问我的gitee pages MapReduce精通(二) MapReduce框架原理 MapReduce工作流程 流程示意图 流程详解 上面的流程 ...
- MapReduce框架原理
MapReduce框架原理 InputFormat数据输入 切片与MapTask并行度决定机制 1)问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度. 思 ...
- Hadoop中的MapReduce框架原理、数据清洗(ETL)、MapReduce开发总结、常见错误及解决方案
文章目录 13.MapReduce框架原理 13.7 数据清洗(ETL) 13.7.1 需求 13.7.1.1 输入数据 13.7.1.2 期望输出数据 13.7.2 需求分析 13.7.3实现代码 ...
- mapreduce实战:统计美国各个气象站30年来的平均气温项目分析(MapReduce处理多文件数据)
气象数据集 我们要写一个气象数据挖掘的程序.气象数据是通过分布在美国各地区的很多气象传感器每隔一小时进行收集,这些数据是半结构化数据且是按照记录方式存储的,因此非常适合使用 MapReduce 程序来 ...
- 使用MapReduce程序完成相关数据预处理(二)
使用MapReduce程序完成相关数据预处理(二) 数据大概有2万条左右所以部分截取 (格式为csv) 1月20日,北京,大兴区,2,0,0,北京市大兴区卫健委,https://m.weibo.cn/ ...
- ## 使用MapReduce程序完成相关数据预处理
使用MapReduce程序完成相关数据预处理 数据大概有2万条左右所以部分截取 (格式为csv) 1月20日,北京,大兴区,2,0,0,北京市大兴区卫健委,https://m.weibo.cn/270 ...
- Hadoop实战系列之MapReduce 分析 Youtube视频数据
Hadoop实战系列之MapReduce 分析 Youtube视频数据 一.实战介绍 MapReduce 是 Hadoop 的计算框架. 在运行一个 MR 程序时,任务过程被分为两个阶段:Map 阶段 ...
- MapReduce之基于符号数据的朴素贝叶斯分类(一)
MapReduce之基于符号数据的朴素贝叶斯分类 简介 朴素贝叶斯(NBC)是一个基于独立假设应用的贝叶斯定理的概论分类器,NBC根据输入的一些属性将输入分配到 k k k个类{ C 1 , C 2 ...
最新文章
- ACM基础题 - 去除字符序列中的几个字符
- Python: max和min函数的高级使用
- MySQL5.7在Ubuntu上的安装、配置与使用
- 小明爱跑步-扩展-多个对象属性之间互不干扰
- 基于ARM+DSP进行应用开发-经验共享
- Jlink commander、MCU GD32启动方式、Bootloader
- vue用html做报表,Vue配置生成无限分割的表格,可快速实现任意复杂报表
- azure云数据库_Azure中的新弹性数据库
- TBS 腾讯浏览服务(X5WebView) 集成指南
- Java 生成 验证码图片
- XP系统计算机桌面图标不见,xp系统桌面计算机快捷图标不见了的设置方法
- Python--判断一个数字的奇偶性
- 在vue中使用echarts,echarts-map:echarts画地图
- mysql 烂泥行天下_烂泥:mysql数据库使用的基本命令
- JavaEE学习之jsp编写登陆注册页面
- 工作流任务调度系统--DolphinSchedule-1.3.6 window 安装配置
- Java 垃圾回收机制算法分析
- 十三年前雷军跟我说:中国to B向toC学习,可能能走出一条道儿来
- 数据库读写分离(一)
- 研华工控机主板上电自启