hadoop - 获取当前运行的reduce任务数

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

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

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

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

最佳答案

您应该为此使用 JobTracker API,如 here 所述.

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

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

关于hadoop - 获取当前运行的reduce任务数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16741345/

相关文章:

hadoop - phoenix jdbc 不工作,没有异常并卡住

hadoop - 如何在 aws emr 中将 ec2-user 添加到 hadoop

linux - 将 amazon-linux 实例从 PV 转换为 HVM 的最简单方法

hadoop - 为什么最后一个 reducer 在合并步骤期间因 java 堆错误而停止

hadoop - 何时在 Hive 表上创建布隆过滤器?

map - 解释什么是 Hadoop 和 Map/Reduce 的最简单方法是什么?

ios - 如何将适用于 iOS 的 AWS 开发工具包与 Objective-C 而不是 Swift 一起使用?

amazon-web-services - 将 EC2 实例注册到 ECS 集群,无需公网 ip

hadoop - Hadoop 中的 JoGL?用于图形的 Hadoop?

MongoDB MapReduce : Global variables within map function instance?