Flink:一个程序中的Dataset和Datastream API。可能吗?

时间:2016-04-12 09:07:14

标签: apache-flink flink-streaming

我想首先使用数据集API操作静态数据,然后使用DataStream API来运行流式传输作业。如果我在IDE上编写代码,它就能完美运行。但是当我尝试在本地flink jobmanager(所有并行性1)上运行时,流代码永远不会执行!

例如,以下代码无效:

val parallelism = 1

val env = StreamExecutionEnvironment.getExecutionEnvironment
env.setParallelism(parallelism)

val envStatic = ExecutionEnvironment.getExecutionEnvironment
envStatic.setParallelism(parallelism)

val myStaticData = envStatic.fromCollection(1 to 10)
val myVal: Int = myStaticData.reduce(_ + _).collect().head

val theStream = env.fromElements(1).iterate( iteretion => {
  val result = iteretion.map(x => x + myVal)
  (result, result)
})
theStream.print()
env.execute("static and streaming together")

我应该尝试让这件事有效?

日志:execution logs for above program

执行计划:plan 似乎是一个循环。

1 个答案:

答案 0 :(得分:4)

如果您有一个由多个子作业组成的Flink作业,例如由countcollectprint触发,您无法通过网络界面提交作业。 Web界面仅支持单个Flink作业。