我总是搞不清楚有多少Map器和减少将被创建一个特定的任务在Hive。e、 g如果块大小=128mb,并且有365个文件Map到一年中的某个日期(每个文件大小=1MB)。有一个基于日期列的分区。在这种情况下,加载数据期间将运行多少Map器和还原器?
jpfvwuh41#
制图员:Map器的数量取决于各种因素,例如数据在节点之间的分布方式、输入格式、执行引擎和配置参数。另请参见此处:https://cwiki.apache.org/confluence/display/tez/how+initial+task+parallelism+worksmr使用combineinputformat,而tez使用分组拆分。特兹:
set tez.grouping.min-size=16777216; -- 16 MB min split set tez.grouping.max-size=1073741824; -- 1 GB max split
MapReduce:
set mapreduce.input.fileinputformat.split.minsize=16777216; -- 16 MB set mapreduce.input.fileinputformat.split.maxsize=1073741824; -- 1 GB
此外,Map器在数据所在的数据节点上运行,这就是为什么手动控制Map器的数量不是一项容易的任务,也不总是能够合并输入。减速器:控制减速器的数量要容易得多。减速机的数量根据 mapreduce.job.reduces -每个作业的默认减少任务数。通常设置为接近可用主机数的素数。当mapred.job.tracker为“local”时忽略。hadoop默认设置为1,而hive使用-1作为默认值。通过将此属性设置为-1,hive将自动计算出减速器的数量。 hive.exec.reducers.bytes.per.reducer -配置单元0.14.0及更早版本中的默认值为1 gb。也 hive.exec.reducers.max -将使用的最大减速器数量。如果 mapreduce.job.reduces 如果为负,则在自动确定减速器数量时,hive将使用此值作为减速器的最大数量。所以,如果你想增加减速器的平行度,增加 hive.exec.reducers.max 减少 hive.exec.reducers.bytes.per.reducer
mapreduce.job.reduces
hive.exec.reducers.bytes.per.reducer
hive.exec.reducers.max
1条答案
按热度按时间jpfvwuh41#
制图员:
Map器的数量取决于各种因素,例如数据在节点之间的分布方式、输入格式、执行引擎和配置参数。另请参见此处:https://cwiki.apache.org/confluence/display/tez/how+initial+task+parallelism+works
mr使用combineinputformat,而tez使用分组拆分。
特兹:
MapReduce:
此外,Map器在数据所在的数据节点上运行,这就是为什么手动控制Map器的数量不是一项容易的任务,也不总是能够合并输入。
减速器:控制减速器的数量要容易得多。减速机的数量根据
mapreduce.job.reduces
-每个作业的默认减少任务数。通常设置为接近可用主机数的素数。当mapred.job.tracker为“local”时忽略。hadoop默认设置为1,而hive使用-1作为默认值。通过将此属性设置为-1,hive将自动计算出减速器的数量。hive.exec.reducers.bytes.per.reducer
-配置单元0.14.0及更早版本中的默认值为1 gb。也
hive.exec.reducers.max
-将使用的最大减速器数量。如果mapreduce.job.reduces
如果为负,则在自动确定减速器数量时,hive将使用此值作为减速器的最大数量。所以,如果你想增加减速器的平行度,增加
hive.exec.reducers.max
减少hive.exec.reducers.bytes.per.reducer