Hadoop 获取当前正在运行的reduce任务数
我正在使用AmazonAWS、DynamoDB和EMR集群进行hadoop流媒体。我的reduce任务写入Dynamo表。我需要建立并遵守写入表的上限,比如写吞吐量的50% 我可以查询表的写吞吐量设置,除以mapred.reduce.tasks,再乘以50%,得到每个任务表的写吞吐量下限。更好的是,我想查询目前正在处理的reduce任务的数量,以获得每个reduce任务的确切写入吞吐量上限,但我不知道如何获得该数量。我在jobtracker中看到它,其中显示了任务总数、待处理任务和正在处理的任务Hadoop 获取当前正在运行的reduce任务数,hadoop,amazon-web-services,mapreduce,amazon-dynamodb,hadoop-streaming,Hadoop,Amazon Web Services,Mapreduce,Amazon Dynamodb,Hadoop Streaming,我正在使用AmazonAWS、DynamoDB和EMR集群进行hadoop流媒体。我的reduce任务写入Dynamo表。我需要建立并遵守写入表的上限,比如写吞吐量的50% 我可以查询表的写吞吐量设置,除以mapred.reduce.tasks,再乘以50%,得到每个任务表的写吞吐量下限。更好的是,我想查询目前正在处理的reduce任务的数量,以获得每个reduce任务的确切写入吞吐量上限,但我不知道如何获得该数量。我在jobtracker中看到它,其中显示了任务总数、待处理任务和正在处理的任务
另一种不太灵活的方法是使用hadoop流参数“-numReduceTasks”设置任务数。如前所述,您应该使用
JobTracker
API进行设置
特别是,您有兴趣调用getClusterStatus
,它将返回ClusterStatus
对象详细信息。从那时起,只需调用getReduceTasks
,它将为您提供集群中当前正在运行的reduce任务的数量
您还可以使用getClusterMetrics
方法获得类似的信息