现在位置: > > IT/计算机 > 计算机软件及应用

Mapreduce和Hive中map reduce个数设定

Mapreduce中mapper个数的确定:

在map阶段读取数据前,FileInputFormat会将输入文件分割成split。split的个数决定了map的个数。

影响map个数,即split个数的因素主要有:

1)HDFS块的大小,即HDFS中dfs.block.size的值。如果有一个输入文件为1024m,当块为256m时,会被划分为4个split;当块为128m时,会被划分为8个split。

2)文件的大小。当块为128m时,如果输入文件为128m,会被划分为1个split;当块为256m,会被划分为2个split。

3)文件的个数。FileInputFormat按照文件分割split,并且只会分割大文件,即那些大小超过HDFS块的大小的文件。如果HDFS中dfs.block.size设置为64m,而输入的目录中文件有100个,则划分后的split个数至少为100个。

4)splitsize的大小。分片是按照splitszie的大小进行分割的,一个split的大小在没有设置的情况下,默认等于hdfs block的大小。但应用程序可以通过两个参数来对splitsize进行调节。

Mapper个数的计算如下:

Step1,splitsize=max(minimumsize,min(maximumsize,blocksize))。 如果没有设置minimumsize和maximumsize,splitsize的大小默认等于blocksize

Step2,计算过程可以简化为如下的公式,详细算法可以参照FileInputSplit类中的getSplits方法

total_split ;

for(file :输入目录中的每个文件)

{

file_split = 1;

if(file.size>splitsize)

{

file_split=file_size/splitsize;

}

total_split+=file_split;

}

Mapreduce中Reducer个数确定:

1,在缺省情况下,一个mapreduce的job只有一个reducer;在大型集群中,需要使用许多reducer,中间数据都会放到一个reducer中处理,如果reducer数量不够,会成为计算瓶颈。

2,reducer的最优个数与集群中可用的reducer的任务槽数相关,一般设置比总槽数稍微少一些的reducer数量;Hadoop文档中推荐了两个公式: 0.95*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum

1.75*NUMBER_OF_NODES*mapred.tasktracker.reduce.tasks.maximum 备注:NUMBER_OF_NODES是集群中的计算节点个数;

mapred.tasktracker.reduce.tasks.maximum:每个节点所分配的reducer任务槽的个数(节点内核数);

3,在代码中通过:JobConf.setNumReduceTasks(Int numOfReduceTasks)方法设置reducer的个数;

相关文档
MAPREDUCE和HIVE中MAP REDUCE个数设定(94)
MAPREDUCE和HIVE中MAP REDUCE个数设定(94)_韩语学习_外语学习_教育专区。MAPREDUCE和HIVE中MAP REDUCE个数设定(94) Mapreduce中mapper个数的确定: 在map阶段读取数据...
MAPREDUCE和HIVE中MAP REDUCE个数设定(94)
MAPREDUCE和HIVE中MAP REDUCE个数设定(94)_韩语学习_外语学习_教育专区。MAPREDUCE和HIVE中MAP REDUCE个数设定(94) Mapreduce 中 mapper 个数的确定: 在 map 阶段...
mapreduce_若干问题
Map shuffle中的merge阶段 c) Reduce shuffle中的merge...影响因素: a) input文件总个数 b) input文件大小...HiveInputFormat; 2013-4-24 11/13 mapreduce问题 ...
1-Map-Reduce简介
MapReduce 的根源是函数性编程中的 mapreduce 函数。它由两个可能包含有...(R 是预先定义的 Reduce 任务 的个数) 默认的划分算法是"(key.hashCode() ...
Map Reduce海量数据并行处理_图文
2 2/9 一、Map Reduce简介 MapReduce是Google提出的一个软件架构,用于大规模数 据集(大于1TB)的并行运算。概念"Map(映射)"和 "Reduce(规约)",和它们的主要...
MapReduce的工作机制
为每 一个分片创建一个 map任务(reduce任务 的个数由用户配置), 将任务放入...使用Hive替代自己编写 MapReduce Job的方案。 需要处理的数据 1、用户的收藏信息...
基于HIVE文件格式的map reduce代码编写
基于HIVE文件格式的map reduce代码编写_计算机软件及应用...//设置一个用户定义的 job 名称 4. conf.setJob...41. public static class Reduce extends MapReduce...
Hive—一种基于MapReduce框架的仓储策略(译文)
Hive—一种基于MapReduce框架的仓储策略(译文)_计算机...假 设数据表T在目录/wh/T下。 如果T是划分了ds...主动管理器提交单独的map-reduce作业到一个拓扑秩序...
hadoop-map-reduce执行流程调研报告
hadoop-map-reduce执行流程调研报告_计算机软件及应用...hadoop中mapreduce部分执... 暂无评价 10页 免费 hadoop...hadoop教程Hive执行过程 35页 1下载券 2010-05-21...
MapReduce介绍
MapReduce:2004年 Google paper ? 一个用于分布式...Map 我们要数图书馆中的所有书。你数1号书架,我...Hive Pig Map Reduce Yarn Sqoop HDFS HDFS & ...
hadoop作业
答:通过具体MapReduce作业的JobConf对象的setOutputFormat()方法来设置具体用到的输出格式。 2.程序运行时如何自定义使用的mapreduce个数?答:InputFormat在默认情况...
相关主题
返回顶部
热门文档
你可能喜欢
  • visualc数据类型
  • 数据类型定义delphi
  • arcgis数据类型
  • oracle数据类型
  • 数据类型varchar