在flink1.17Application模式中 客户端执行 flink run-application -t yarn-application 跑批,有没有办法同步获取任务执行结果后再退出客户端?
在 Apache Flink 1.17 的 Application 模式中,要同步获取任务执行结果后再退出客户端,你可以使用 StreamExecutionEnvironment.execute()
方法。这个方法会阻塞直到作业完成或者出现错误。
以下是一个简单的示例:
import org.apache.flink.api.common.JobExecutionResult;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
public class MyFlinkJob {
public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 构建你的数据流并设置源、转换和接收器
// 启动并等待作业结束
JobExecutionResult result = env.execute("My Flink Job");
// 打印作业的累计状态计数器信息
for (Map.Entry<String, Long> entry : result.getAllAccumulatorResults().entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 在这里,你可以根据需要检查作业的状态或结果,并决定是否应该继续执行其他操作
}
}
在这个例子中,execute()
方法将启动并运行整个数据流作业。一旦作业完成,它将返回一个 JobExecutionResult
对象,该对象包含了作业的一些统计信息以及所有累积状态计数器的结果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。