1

我正在使用 Amazon AWS、Dynamo DB 和 EMR 集群进行 hadoop 流式传输。我的 reduce 任务写入 Dynamo 表。我需要建立并遵守写入表的上限,例如写入吞吐量的 50%。

我可以查询表的写入吞吐量设置,除以 mapred.reduce.tasks,然后乘以 50% 以获得每个任务对表的写入吞吐量的下限。更好的是,我想查询当前正在处理的 reduce 任务的数量,获得每个 reduce 任务的准确写入吞吐量上限,但我不知道如何获得该数字。我在 jobtracker 中看到它,它显示了任务总数、待处理任务和正在处理的任务。

一种不太灵活的替代方法是使用 hadoop 流参数“-numReduceTasks”设置任务数。

4

1 回答 1

0

您应该使用此处JobTracker描述的 API 。

特别是,您有兴趣调用getClusterStatus它将返回一个ClusterStatus详细的对象here。从那时起,只需调用getReduceTasks它将为您提供集群中当前正在运行的 reduce 任务的数量。

您也可以使用getClusterMetrics为您提供类似信息的方法来获取。

于 2013-05-25T06:20:26.260 回答