问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MapReduce中控制Map数量

发布网友 发布时间:2023-03-27 22:57

我来回答

1个回答

热心网友 时间:2023-10-24 22:38

近日在工作中遇到一个Hive job报错,查看报错信息如下:

问题猜测是由于MapJoin导致了oom,经指点后设置如下参数

Job 成功执行。具体原理经查阅资料后,整理如下:

在进行map计算前,MapRece会根据输入文件计算输入分片(Input Split),每个输入分片针对一个map任务,输入分片存储的并非数据本身,而是一个分片长度和一个记录数据位置的数组
在Hadoop2.x中默认的block大小是128M,在1.x中默认的大小是64M,可是在hdfs-site.xml中自行设置:

分片的大小范围可以在mapred-site.xml中设置

所以,当没有设置分片范围的时候,block块的大小决定了分片的大小,比如把一个258M的文件上传至HDFS,假设block的大小是128M,那么它就会被分成3个block块,与之相对应产生三个split,最终会有三个map task。这样产生一个新的问题,继续上面的例子,第3个block块存的文件大小只有2M,而它的block块的大小是128M,那它实际占用的Linux file system的空间是多大?答案是文件的实际大小;那在这种情况下,block大小的意义在于,当文件通过append操作不断增长时,可以通过block的大小决定何时split 文件。

blockSize:HDFS的文件块大小
totalSize:输入文件大小
inputFileNum:输入文件的数量

除了以上这些配置外,MapRece还要遵循一些原则。MapRece的每一个map处理数据是不能跨越文件的。也就是说minMapNum>=inputFileNum,所以,最终的map个数应该为:
mapNum=max(computeMapNum,inputFileNum)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 hadoop的map读取一行数据就结束了 京东app佳能打印机怎么样 京东普伟打印店怎么样可靠吗 论工程量清单模式下的招投标? 招标工程量清单 工程量清单招标介绍? 工程量清单计价与招投标制度的改革? 单价为0的清单数 11红双喜真假鉴别 春节周边游哪里好玩 山西丰喜公司怎么样?待遇怎么样? 东展北化与海旗的关系 北京化工大学化学工程 化学工艺研究生就业去向 薪金待遇怎样啊,都有哪些中外企业去招聘,留京的机会多吗 北京化工研究院天津基地待遇怎么样 京东哪里能买到辉瑞的东西 女用伟哥粉在哪里可以买到 如何用AWS EC2主机连接RDS MySQL内联外联的区别 梦见父母运煤炭回家的预兆 梦见煤堆都是煤块并且买回家的预兆 如何判断是否被注销了? 怎样查对方注销了吗? 如何知道对方是否注销(怎么能知道注销成功?) 月圆中秋手抄报视频 中秋手抄报月饼画画简易视频 为什么抖音里面时间不显示呢? 抖音顶部不显示时间? 京东怎么还信用卡还款? 抖音怎么故意让一个人刷到 发抖音怎样指示某个人 在mysql中时间格式为2000-01-01 11:48:39 怎么给他取出来成2000-01-01格式PHP 开通京东会员需要绑定银行卡吗 数据库:查询2个表,然后2个表中都有相同的port、time字段,然后查询的时候,需要根据port分组。 新车要抛光吗? 汽车抛光有必要么? 新车抛光对车漆有影响吗 新车小划痕要不要抛光? oraclerac从库插入性能不如主库 使用nginx代理oraclerac oracle安装完rac后还需要配置负载均衡吗