我正在使用 Amazon AWS、Dynamo DB 和 EMR 集群进行 hadoop 流式传输。我的 reduce 任务写入 Dynamo 表。我需要建立并遵守写入表的上限,例如写入吞吐量的 50%。
我可以查询表的写入吞吐量设置,除以 mapred.reduce.tasks,然后乘以 50% 以获得每个任务对表的写入吞吐量的下限。更好的是,我想查询当前正在处理的 reduce 任务的数量,以获得每个 reduce 任务的准确写入吞吐量上限,但我不知道如何获得该数字。我在 jobtracker 中看到它,它显示了任务总数、待处理任务和正在处理的任务。
一种不太灵活的替代方法是使用 hadoop 流参数“-numReduceTasks”设置任务数。