flink批处理程序输出累加器不工作

zfciruhq  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(357)
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    ......
    JobExecutionResult jobExecutionResult = env.execute(XXXOffline.class.getName());
    int records = jobExecutionResult.<Integer>getAccumulatorResult("counter");
    LOGGER.info("total records: {}", records);

但是,日志没有写入日志文件(ps:其他日志输出工作正常)。我认为env.execute()阻塞了调用,当所有子任务都结束时,getaccumulatorresult()就会执行。我不知道为什么最后一行日志输出不起作用。

nkoocmlb

nkoocmlb1#

从文件上你可以看到
累加器是简单的构造,带有一个add操作和一个最终的累加结果,在作业结束后可用。
因此,正如您所了解的,在作业终止之前,无法访问累加器(例如,env#execute returns)。它们可用于编排较小(有界)的作业。我经常在集成测试中使用它来表达Assert。
对于无限的工作,他们没有明显的好处。您希望改用度量。

相关问题