java - Amazon EMR terminateJobFlows 用于具有超过可以终止的最大集群的请求
问题描述
我正在使用 AWSElasticMapReduceJavaClient-1.11.x,并且 EMR 一次可以终止的最大集群是 10。我将如何在一次terminateJobFlows
调用中终止一个请求,比如说 100 个集群?我正在实现AmazonElasticMapReduce
接口,所以这个方法需要被覆盖并返回一个TerminateJobFlowsResult
. 不幸的是,这与 void 方法不向后兼容 1.10 版terminateJobFlows
,但它现在返回结果。
@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??
});
}
解决方案
TerminateJobFlowsResult对象不包含任何内容,在功能上等同void
于以前 SDK 版本中的返回。这意味着您可以不加选择地返回您收到的任何实例,或者简单地自己创建一个新实例并在最后返回它以满足接口契约。
推荐阅读
- spss - 计算组中的比例多样性
- gradle - Gradle 子项目条件插件配置与 gradle kotlin dsl
- python - 网络抓取 BS4 表位于但为空 findall
- c# - 没有使用 csvHelper 映射类型的属性
- dji-sdk - 如何从 DJI H.264 视频中获取帧?
- node.js - 使用异步迭代器时避免退出 for-await 循环
- html - Anchor tag is messing with img position
- amazon-web-services - Can't create AWS ALB kubernetes ingress controller in Terraform
- javascript - Taking user input from a form, showing it on a website in an array, and replacing variety of the strings with different words
- python - Reverse url not found