开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

在flink1.17Application模式中有没有办法同步获取任务执行结果后再退出客户端?

在flink1.17Application模式中 客户端执行 flink run-application -t yarn-application 跑批,有没有办法同步获取任务执行结果后再退出客户端?

展开
收起
三分钟热度的鱼 2023-11-30 16:22:42 53 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在 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 对象,该对象包含了作业的一些统计信息以及所有累积状态计数器的结果。

    2023-11-30 21:48:21
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载