在flink中,我们之前介绍过Dataset是一种批模式,但是在官方的flink api文档里面可以看到dataset已经在1.17版本的时候过时了,在flink的1.18版本中,已经没有dtaaset的单独模块介绍了,所以后面的开发我们几乎都是基于DataStream API来进行开发的,所以由此我们知道一个事实:DataStream API可以实现流模式,也可以实现批模式,具体执行哪种模式,有两种方式实现。
第一种方式:运行时设置
在向flink集群提交任务的时候,我们添加如下的参数就可以设置以流模式运行还是批模式运行:
#设置为批处理模式 -Dexecution.runtime-mode=BATCH #设置为流模式(默认) -Dexecution.runtime-mode=STREAMING #设置为系统自动决定 -Dexecution.runtime-mode=AUTOMATIC
完整的设置示例如下:
flink run -Dexecution.runtime-mode=BATCH WordCount.jar
第二种方式:代码中设置
第二种方式就是在编码的时候写死,示例如下:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); #设置为批模式 env.setRuntimeMode(RuntimeExecutionMode.BATCH); #设置为系统自动决定 env.setRuntimeMode(RuntimeExecutionMode.AUTOMATIC); #设置为流模式 env.setRuntimeMode(RuntimeExecutionMode.STREAMING);
以上两种方式在真实的环境中,我们一般使用第一种方式,不建议使用第二种方式,因为不灵活。
还没有评论,来说两句吧...