基于数据卷创建的地图作业数

时间:2014-04-21 05:44:19

标签: hadoop mapreduce

每当我们在任何数据量上运行任何Map作业时,默认情况下会创建一定数量的地图作业。我想知道它背后的逻辑。

  

考虑我尝试在HDFS或上传数据时的情况   使用sqoop将数据上传到HIVE

  • 是否存在基于数据量的静态作业数量 数学公式。
  • 是否有一些智能系统能够理解您的数据 监督聚类算法,并在每个Map?
  • 中对数据进行分组

我想知道Hadoop究竟如何知道数字,如果Map工作,我试图在互联网上找到答案,但我找不到确切的回复。

2 个答案:

答案 0 :(得分:2)

执行的地图任务数取决于计算的输入拆分数。

计算输入拆分数的逻辑取决于MapReduce作业中使用的InputFormat。

每个输入分割将生成一个地图任务,因此如果有3个输入分割,我们将有3个地图任务

如果您需要自定义此逻辑

,则可以创建自定义InputFormat

有关详细信息,请查看Definitive Guide

答案 1 :(得分:0)

每个文件在HDFS中表示为块。默认块大小为64MB。

块的(blks)no将大致等于(mb中的数据量)/ 64。

为每个InputSplit创建一个映射器进程。默认情况下,InputSplit的大小等于块的大小,即64 MB。

为了遵守数据局部性原则,Mapper在该块所在的同一台机器上执行。因此,映射器的数量将等于没有块。

相关问题