Да, очень возможно дождаться завершения кластера EMR.
Существуют официанты , которые будут блокировать выполнение, пока кластер (т. Е. Поток заданий) не достигнет определенного уровня.state.
val newCluster = emr.runJobFlow(createClusterRequest);
val describeRequest = new DescribeClusterRequest()
.withClusterId(newCluster.getClusterId())
// Wait until terminated
emr.waiters().clusterTerminated().run(new WaiterParameters(describeRequest))
Кроме того, если вы хотите получить состояние кластера (т. е. поток заданий), вы можете вызвать функцию descriptionCluster клиента EMR.Ознакомьтесь со связанной документацией, так как вы можете получить информацию о состоянии и состоянии кластера, чтобы определить, успешен он или нет.
val result = emr.describeCluster(describeRequest)
Примечание: не самый лучший Java-er, так что вышеизложенное - моя лучшая догадка и то, как он будет работать, основываясь на документации, но я не проверял выше.