当前位置: 首页 > news >正文

hadoop之mr

文章目录

    • 1.mr之CombineTextInputFormat
    • 2.split size
    • 2.按行分片NLineInputFormat
    • 4.split大小与block的关系:
    • 5.reduce数量大于分区数

1.mr之CombineTextInputFormat

  • 处理一个文件夹下的四个小文件,未使用CombineTextInputFormat.class
//默认走的是TextInputFormat//job.setInputFormatClass(CombineTextInputFormat.class);//6.设置输入输出路径FileInputFormat.setInputPaths(job,newPath(input));FileOutputFormat.setOutputPath(job,newPath(output));

输出:

INFO FileInputFormat:Total input paths to process:4INFO JobSubmitter:number of splits:4
  • 使用CombineTextInputFormat.class
//默认走的是TextInputFormatjob.setInputFormatClass(CombineTextInputFormat.class);//6.设置输入输出路径FileInputFormat.setInputPaths(job,newPath(input));FileOutputFormat.setOutputPath(job,newPath(output));

输出:

INFO FileInputFormat:Total input paths to process:4INFO CombineFileInputFormat:DEBUG:Terminated node allocation with:CompletedNodes:1,size left:57INFO JobSubmitter:number of splits:1INFO JobSubmitter:Submitting tokensforjob:job_local656404029_0001

2.split size

  • 将block设置成4兆


有三个split

  • 第一阶段

1.4 <4 1.4
4.2 >4 <42 2.1 2.1
2.8 <4 2.8
5.7 >4 <4
2 2.85 2.85

  • CombineTextInputFormat只能合文本

2.按行分片NLineInputFormat

  • 业务场景:
    一般: 100列 100行 5G
    特殊: 2列 ? 5G

eg:10w行数据
未设置NLineInputFormat.1个split

job.setInputFormatClass(NLineInputFormat.class);NLineInputFormat.setNumLinesPerSplit(30000);

设置NLineInputFormat后,3个splits

4.split大小与block的关系:

(1)block块的小于split分片的最小值,那split的值就是split分片的大小

(2)block块的小大介于split分片配置的最小值和最大值之间,block的大小就是split的大小。

(3)block块的大小大于split分片的最大值,split的大小就是split配置的最大值。但会增加map执行的并发度,但是会造成在节点之间拉取数据

也有公式可以计算split也就是map任务数,这里就不做讨论了。

  • 一个map对应一个split分片吗?
    经过上面的讨论,答案是显而易见的:
    map个数:由任务切片spilt决定的,默认情况下一个split的大小就是block
    由参与任务的文件个数决定的

5.reduce数量大于分区数

  • 后面的part文件是空的—小文件越多

  • reduce数量不可以小于分区数

  • reduce数量可以等于1,全写入一个文件

  • reduce增加,并行度增加,速度会快.但是,jvm开销会大,小文件也增加.离线处理对速度要求不太高.

http://www.jsqmd.com/news/1281298/

相关文章:

  • 国产pH玻璃电极十大品牌排名,附选型避坑指南 - 陈工日常
  • 终极LRC歌词解决方案:如何一键批量同步离线音乐库
  • 南昌市马桶疏通 / 管道疏通|本地市民好评,满分十星平台+ ICP 多重备案 | 2026首选小蚁匠 - 欧米到家
  • QMCDecode终极指南:3分钟解锁QQ音乐加密格式,免费实现无损音频转换
  • 抓包工具Fiddler的使用(二)
  • PMP项目管理知识体系与实战应用解析
  • 终极指南:如何用FanControl实现Windows系统风扇的完美静音控制
  • Vue3 迁移避坑大全:从 Vue2 到 Vue3 的 50 个隐蔽陷阱与解决方案
  • kafka消息中间件Java API调用
  • 适合退休老人喝的高营养、低GI认证羊奶粉有哪些? - 城刊速递
  • 【QA那些事儿】视频SDK测试方法-场景自动化
  • 如何快速部署缠论分析插件:通达信智能交易终极解决方案
  • Livewire 3构建高效Quiz系统的实战指南
  • spring源码解析(容器的功能扩展)
  • AI Agent工作流实战:从概念到工程落地的完整指南
  • 蚌埠宝妈群验证过的4家靠谱儿童摄影门店清单,可放心加入备选 - 商业快讯早知道
  • 前端脚手架开发指南:提升开发效率的利器
  • 如何用Webcamoid在5分钟内将普通摄像头变成创意工作室?终极视频特效软件完全指南
  • 大模型选型实战:从智能指数到成本优化的关键策略
  • 2026呼和浩特经济纠纷法律服务优选:工程款、合同、交通及企业纠纷专业律师解析 - 品牌商讯
  • Twitch Drops Miner完整指南:告别手动观看,智能获取游戏奖励
  • MBA论文降AI率实战:9大工具与人性化写作策略
  • 标注公司接南京话项目,标注员不会标方言词汇
  • 项目文档:基于MATLAB时间卷积网络的心电房颤智能分类系统
  • Python迭代器系统学习路线第528讲_核心原理与实战案例详解【指导】
  • NBUT-2019-ICPC训练赛
  • Claude Agent Skills开发指南:大模型技能封装与实践
  • 前端依赖管理的五大灾难场景:版本冲突、幽灵依赖与供应链攻击
  • 2026年7月扬州邗江区到广州物流服务公司靠谱排行 - 起跑123
  • mysql卸载重新安装会报错解决方案