获取此刻正在运行的reduce任务数量

时间:2013-05-24 18:23:29

标签: hadoop amazon-web-services mapreduce amazon-dynamodb hadoop-streaming

我正在使用亚马逊AWS,Dynamo数据库和EMR群集进行hadoop流式传输。我的reduce任务写入Dynamo表。我需要建立并遵守写入表格的上限,比如50%的写入吞吐量。

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

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

1 个答案:

答案 0 :(得分:0)

您应该使用JobTracker API,如here所述。

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

您还可以使用getClusterMetrics方法获取类似信息。