From 726aee360a8c96ad6726ac69817959ed66992695 Mon Sep 17 00:00:00 2001 From: Jason Lowe Date: Tue, 18 Sep 2018 17:06:32 -0500 Subject: [PATCH] MAPREDUCE-7138. ThrottledContainerAllocator in MRAppBenchmark should implement RMHeartbeatHandler. Contributed by Oleksandr Shevchenko (cherry picked from commit 8382b860d4ef4f20d000537ded42a88e98bd2190) Conflicts: hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRAppBenchmark.java --- .../hadoop/mapreduce/v2/app/MRAppBenchmark.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRAppBenchmark.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRAppBenchmark.java index 5569722b82f..6bd808a22d0 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRAppBenchmark.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/MRAppBenchmark.java @@ -33,7 +33,9 @@ import org.apache.hadoop.mapreduce.v2.app.rm.ContainerAllocator; import org.apache.hadoop.mapreduce.v2.app.rm.ContainerAllocatorEvent; import org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator; +import org.apache.hadoop.mapreduce.v2.app.rm.RMHeartbeatHandler; import org.apache.hadoop.service.AbstractService; +import org.apache.hadoop.util.Time; import org.apache.hadoop.yarn.api.ApplicationMasterProtocol; import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest; import org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse; @@ -114,7 +116,7 @@ protected ContainerAllocator createContainerAllocator( } class ThrottledContainerAllocator extends AbstractService - implements ContainerAllocator { + implements ContainerAllocator, RMHeartbeatHandler { private int containerCount; private Thread thread; private BlockingQueue eventQueue = @@ -179,6 +181,15 @@ protected void serviceStop() throws Exception { } super.serviceStop(); } + + @Override + public long getLastHeartbeatTime() { + return Time.now(); + } + + @Override + public void runOnNextHeartbeat(Runnable callback) { + } } } @@ -259,7 +270,7 @@ public AllocateResponse allocate(AllocateRequest request) }); } - @Test + @Test(timeout = 60000) public void benchmark2() throws Exception { int maps = 100; // Adjust for benchmarking, start with a couple of thousands int reduces = 50;