gpt4 book ai didi

hadoop - 设置map任务和reduce任务的数量

转载 作者:可可西里 更新时间:2023-11-01 14:07:04 27 4
gpt4 key购买 nike

我目前正在运行一项工作,我将 map task 的数量固定为 20,但得到了更高的数量。我还将 reduce 任务设置为零,但我仍然得到一个非零的数字。 MapReduce 作业完成的总时间也不会显示。有人可以告诉我我做错了什么。我正在使用这个命令

hadoop jar Test_Parallel_for.jar Test_Parallel_for Matrix/test4.txt Result 3 \ -D mapred.map.tasks = 20 \ -D mapred.reduce.tasks =0

输出:

11/07/30 19:48:56 INFO mapred.JobClient: Job complete: job_201107291018_0164
11/07/30 19:48:56 INFO mapred.JobClient: Counters: 18
11/07/30 19:48:56 INFO mapred.JobClient: Job Counters
11/07/30 19:48:56 INFO mapred.JobClient: Launched reduce tasks=13
11/07/30 19:48:56 INFO mapred.JobClient: Rack-local map tasks=12
11/07/30 19:48:56 INFO mapred.JobClient: Launched map tasks=24
11/07/30 19:48:56 INFO mapred.JobClient: Data-local map tasks=12
11/07/30 19:48:56 INFO mapred.JobClient: FileSystemCounters
11/07/30 19:48:56 INFO mapred.JobClient: FILE_BYTES_READ=4020792636
11/07/30 19:48:56 INFO mapred.JobClient: HDFS_BYTES_READ=1556534680
11/07/30 19:48:56 INFO mapred.JobClient: FILE_BYTES_WRITTEN=6026699058
11/07/30 19:48:56 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=1928893942
11/07/30 19:48:56 INFO mapred.JobClient: Map-Reduce Framework
11/07/30 19:48:56 INFO mapred.JobClient: Reduce input groups=40000000
11/07/30 19:48:56 INFO mapred.JobClient: Combine output records=0
11/07/30 19:48:56 INFO mapred.JobClient: Map input records=40000000
11/07/30 19:48:56 INFO mapred.JobClient: Reduce shuffle bytes=1974162269
11/07/30 19:48:56 INFO mapred.JobClient: Reduce output records=40000000
11/07/30 19:48:56 INFO mapred.JobClient: Spilled Records=120000000
11/07/30 19:48:56 INFO mapred.JobClient: Map output bytes=1928893942
11/07/30 19:48:56 INFO mapred.JobClient: Combine input records=0
11/07/30 19:48:56 INFO mapred.JobClient: Map output records=40000000
11/07/30 19:48:56 INFO mapred.JobClient: Reduce input records=40000000
[hcrc1425n30]s0907855:

最佳答案

给定作业的 map task 数量由输入拆分数量决定,而不是由 mapred.map.tasks 参数决定。对于每个输入拆分,都会生成一个映射任务。因此,在 mapreduce 作业的整个生命周期中,map 任务的数量等于输入拆分的数量。 mapred.map.tasks 只是对 map 数量的 InputFormat 的提示。

在您的示例中,Hadoop 已确定有 24 个输入拆分并将总共生成 24 个映射任务。但是,您可以控制每个任务跟踪器可以并行执行多少个 map task 。

此外,在 -D 之后删除一个空格可能会解决 reduce 的问题。

有关map和reduce任务数量的更多信息,请查看以下网址

https://cwiki.apache.org/confluence/display/HADOOP2/HowManyMapsAndReduces

关于hadoop - 设置map任务和reduce任务的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6885441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com