获取当前运行的reduce任务数

af7jpaap  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(215)

我正在使用amazonaws、dynamodb和emr集群进行hadoop流媒体。我的任务写在发电机表上。我需要建立并遵守一个向表写入数据的上限,比如50%的写入吞吐量。
我可以查询表的write throughput设置,除以mapred.reduce.tasks,再乘以50%,得到每个任务表的write throughput下限。更好的是,我想查询当前正在处理的reduce任务的数量,以获得每个reduce任务的确切写入吞吐量上限,但我不知道如何获得该数字。我在jobtracker中看到了它,它显示了任务总数、挂起的任务和正在处理的任务。
另一种不那么灵活的方法是使用hadoop流参数“-numreducetasks”设置任务数。

hgtggwj0

hgtggwj01#

你应该使用 JobTracker 这里描述的api。
特别是,你有兴趣打电话 getClusterStatus 这将给你一个 ClusterStatus 对象的详细信息。从那时起,只需打个电话 getReduceTasks 这将为您提供集群中当前正在运行的reduce任务数。
你也可以通过使用 getClusterMetrics 提供类似信息的方法。

相关问题