Hadoop在8个节点的集群上运行。提交的作业生成几个键值对象作为具有不同键的映射器输出(手动检查),因此我除了有几个启动的reducers来管理节点中的数据。
我不知道为什么,因为日志报告,启动的减少任务的数量是总是 1.由于有几十个不同的密钥,我希望至少有多少减少器数量节点,即8(也是奴隶的数量)。
这是作业结束时的日志
13/05/25 04:02:31 INFO mapred.JobClient: Job complete: job_201305242051_0051
13/05/25 04:02:31 INFO mapred.JobClient: Counters: 30
13/05/25 04:02:31 INFO mapred.JobClient: Job Counters
13/05/25 04:02:31 INFO mapred.JobClient: Launched reduce tasks=1
13/05/25 04:02:31 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=21415994
13/05/25 04:02:31 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
13/05/25 04:02:31 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
13/05/25 04:02:31 INFO mapred.JobClient: Rack-local map tasks=7
13/05/25 04:02:31 INFO mapred.JobClient: Launched map tasks=33
13/05/25 04:02:31 INFO mapred.JobClient: Data-local map tasks=26
13/05/25 04:02:31 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=5486645
13/05/25 04:02:31 INFO mapred.JobClient: File Output Format Counters
13/05/25 04:02:31 INFO mapred.JobClient: Bytes Written=2798
13/05/25 04:02:31 INFO mapred.JobClient: FileSystemCounters
13/05/25 04:02:31 INFO mapred.JobClient: FILE_BYTES_READ=2299685944
13/05/25 04:02:31 INFO mapred.JobClient: HDFS_BYTES_READ=2170126861
13/05/25 04:02:31 INFO mapred.JobClient: FILE_BYTES_WRITTEN=2879025663
13/05/25 04:02:31 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=2798
13/05/25 04:02:31 INFO mapred.JobClient: File Input Format Counters
13/05/25 04:02:31 INFO mapred.JobClient: Bytes Read=2170123000
其他(有用?)信息:
那么,你知道减速器数量为1的原因吗?而不是更多?
由于
答案 0 :(得分:1)
你应该:
最便捷的方法是使用jobtracker
webUI:http://localhost:50030/machines.jsp?type=active
(您可能需要使用jobtracker正在运行的主机名删除localhost
。它将显示所有内容集群中的活动TaskTrackers,以及每个TaskTracker可以同时运行多少个reducers。
您有三种方式:
与zsxwing一样,您应该通过调用setNumReduceTasks()
JobConf
方法指定减速器编号。并将减少数量作为参数。
你也可以在命令行中传递reducer数字,如下所示:
bin/hadoop jar hadoop-examples-1.0.4.jar terasort -Dmapred.reduce.tasks=2 teragen teragen_out
。
上面的命令行将启动2个reducer。
conf/mapred-site.xml
您还可以在mapred-site.xml中添加一个新属性,如下所示:
<property>
<name>mapred.reduce.tasks</name>
<value>2</value>
</property>
答案 1 :(得分:0)
无论映射器输出多少个密钥,您都需要自己设置减速器编号(默认值为1)。您可以使用job.setNumReduceTasks(5)
设置reduce任务5。