Flink 1.8,并行度 > 1,source 从不输出值
Flink 1.8, parallelism > 1, source never outputs values
我有一个集群:
- 1 个任务管理器
- 1 个 StandaloneJob / JobManager
- 配置:
taskmanager.numberOfTaskSlots: 1
如果我在使用 Flink PubSub 源的作业上设置 default.parallelism: 4
,我在启动 "job cluster"/taskmanager:
时会不断收到此错误
[analytics-job-cluster-7bd4586ccb-s5hmp job] 2019-05-01 16:22:30,888 INFO org.apache.flink.runtime.checkpoint.CheckpointCoordinator - Checkpoint triggering task Source: Custom Source -> Process -> Timestamps/Watermarks -> app_events (1/4) of job 00000000000000000000000000000000 is not in state RUNNING but SCHEDULED instead. Aborting checkpoint.
但是,如果我将同一个作业指向一堆文件,它会完美运行。这是什么意思?
所以,问题是您基本上需要 numberOfTaskSlots
等于您的并行度。因此,在这种情况下,如果您只有 1 个 TaskManager 和 1 个 TaskSlot,Flink 将无法正常启动作业,因为没有足够的槽。如果您将给定 TaskManager 的 numberOfTaskSlots
设置为等于并行度,那么它应该可以正常工作。
我有一个集群:
- 1 个任务管理器
- 1 个 StandaloneJob / JobManager
- 配置:
taskmanager.numberOfTaskSlots: 1
如果我在使用 Flink PubSub 源的作业上设置 default.parallelism: 4
,我在启动 "job cluster"/taskmanager:
[analytics-job-cluster-7bd4586ccb-s5hmp job] 2019-05-01 16:22:30,888 INFO org.apache.flink.runtime.checkpoint.CheckpointCoordinator - Checkpoint triggering task Source: Custom Source -> Process -> Timestamps/Watermarks -> app_events (1/4) of job 00000000000000000000000000000000 is not in state RUNNING but SCHEDULED instead. Aborting checkpoint.
但是,如果我将同一个作业指向一堆文件,它会完美运行。这是什么意思?
所以,问题是您基本上需要 numberOfTaskSlots
等于您的并行度。因此,在这种情况下,如果您只有 1 个 TaskManager 和 1 个 TaskSlot,Flink 将无法正常启动作业,因为没有足够的槽。如果您将给定 TaskManager 的 numberOfTaskSlots
设置为等于并行度,那么它应该可以正常工作。