Hadoop 哪个决定了配置单元中映射任务和减少任务的数量?

Hadoop 哪个决定了配置单元中映射任务和减少任务的数量?,hadoop,hive,Hadoop,Hive,我使用配置单元运行一个查询“select*fromt1,T2其中T1.a=T2.b”,模式是T1(a int,b int),T2(a int,b int),当它运行时,生成了6个映射任务和一个reduce任务,我想问一下,这决定了映射任务和reduce任务的数量?是数据量吗?映射任务的数量取决于数据量、块大小和分割大小。 例如:如果块大小为128 MB,文件大小为1 GB,则将有8个映射任务。您可以使用“拆分大小”来控制它 配置单元作业中的还原器数量默认为1。您必须通过配置更新它 <pro

我使用配置单元运行一个查询“select*fromt1,T2其中T1.a=T2.b”,模式是T1(a int,b int),T2(a int,b int),当它运行时,生成了6个映射任务和一个reduce任务,我想问一下,这决定了映射任务和reduce任务的数量?是数据量吗?

映射任务的数量取决于数据量、块大小和分割大小。 例如:如果块大小为128 MB,文件大小为1 GB,则将有8个映射任务。您可以使用“拆分大小”来控制它

配置单元作业中的还原器数量默认为1。您必须通过配置更新它

<property>
  <name>mapred.reduce.tasks</name>
  <value>-1</value>
  <description>The default number of reduce tasks per job.  Typically set
   to a prime close to the number of available hosts.  Ignored when
   mapred.job.tracker is "local". Hadoop set this to 1 by default, whereas hive uses
  -1 as its default value.
   By setting this property to -1, Hive will automatically figure out what should be
   the number of reducers.
  </description>
</property>

mapred.reduce.tasks
-1
每个作业的默认减少任务数。典型设置
到接近可用主机数的素数。当
mapred.job.tracker为“本地”。Hadoop默认设置为1,而hive使用
-1作为其默认值。
通过将此属性设置为-1,Hive将自动确定应该是什么
减速机的数量。
决定分割大小的参数,反过来,不需要任何贴图任务

“mapred.max.split.size”
可通过 您的conf对象。不要更改“dfs.block.size”,这会影响您的 HDFS也是

如果
mapred.min.split.size
小于块大小和
mapred.max.split.size
大于块大小,则发送1个块 到每个映射任务。块数据被拆分为基于密钥的键值对 在您使用的输入格式上


蜂巢>从emp中选择* 然后将没有地图,并开始减少。意味着我们只是在倾销数据

若我想要那个么当我点击查询时,有多少地图和减少开始

蜂巢>按名称从emp组中选择计数(*)

如果我们在查询之前添加explain关键字,它将显示有多少map和reduce将开始。


hive>解释按名称从emp组中选择计数(*)

非常感谢,但是块的数量决定了地图任务的数量吗?还是斯普利兹的号码?我认为这是拆分的编号。:)默认情况下,它是块大小,但您可以通过指定拆分大小配置来自定义它。
> mapred.max.split.size 
> mapred.min.split.size