前提:
目前,Flink版本支持,批流处理使用一套API完成。
即,使用DataStream API既能处理流数据,又能处理批数据(有界流)。
如何使用DataStream API处理数据,并且以BATCH的方式运行呢?
方式一:在程序中指定运行模式(不推荐,调试可以):
env.setRuntimeMode(RuntimeExecutionMode.BATCH);
方式二:
提交任务时,使用bin/flink/run -Dexecution.runtime-mode=BATCH 指定BATCH方式运行程序。
使用BATCH方式运行的目的?
我理解是将最终的结果进行输出,而不是获取一条记录后就输出一条结果。
示范例子
例子数据源word.txt,只有三行数据
hello word
hello flink
hello java
正常情况下,使用DataStream API对数据进行流式处理。
package org.galaxy.foundation.core.courses;
import org.apache.flink.api.common.RuntimeExecutionMode;
import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.api.java