Hadoop 哪个决定了配置单元中映射任务和减少任务的数量?
我使用配置单元运行一个查询“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。您必须通过配置更新它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
<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