I'm using AWSElasticMapReduceJavaClient-1.11.x, and the maximum clusters that EMR can terminate at one time is 10. How would I go about terminating a request with let's say 100 clusters all in one terminateJobFlows
call? I'm implementing the AmazonElasticMapReduce
interface so this method needs to be overridden and return a TerminateJobFlowsResult
. This is unfortunately not backwards compatible with version 1.10 as terminateJobFlows
was a void method, but it now returns a result.
@Override
public TerminateJobFlowsResult terminateJobFlows(TerminateJobFlowsRequest request) {
List<List<String>> distributedClusterIds = Lists.partition(request.getJobFlowIds(), 10);
distributedClusterIds.stream()
.map(TerminateJobFlowsRequest::new)
.forEach(request -> {
emrClient.terminateJobFlows(request); // returns a TerminateJobFlowsResult
// How to return each result somehow??
});
}