【发布时间】:2011-10-16 15:49:17
【问题描述】:
我目前正在运行一项工作,我将地图任务的数量固定为 20,但并获得了更高的数量。我还将减少任务设置为零,但我仍然得到一个非零的数字。 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:
【问题讨论】:
-
您是否还在 xml 配置和/或您正在运行的类的主体中设置 mapred.map.tasks?如果是这样,更改这些设置是否会更改正在执行的任务数量?看起来您这样做是正确的,因为在命令行中指定的属性应该具有最高优先级。
-
它应该可以工作,但我得到的地图任务比指定的要多。为什么我没有得到运行工作的总时间?
-
我不确定没有打印的时间,但任务数量的可能错误来源是
-D属性中的间距。确保您拼写为-Dproperty=value(没有空格)或-Dproperty value(有一个空格),否则可能会被解析错误。 -
map任务的个数是根据输入的总大小和块大小,即分裂的个数。即使您设置了地图任务的数量,这也只是一个提示。 reduce任务的个数可以用户自定义,如果没有明确定义,默认reduce个数为1。更多信息:search-hadoop.com/c/MapReduce:hadoop-mapreduce-client/…