我在2个不同的物理节点上使用flink集群和9个任务管理器。当我将罐子提交给Flink的Jobmanager(Master)时,罐子究竟发生了什么。我的意思是,jar是否会分发到所有工作节点,或者函数的某些部分是否会被重新连接到所有工作节点?
我问这个是因为,当我尝试运行我的应用程序时,它在本地运行成功,但是当在集群上运行时,会在FlatMapFunction上给出序列化错误。
答案 0 :(得分:-1)
作业管理器处理应用程序代码,将其拆分为任务和子任务,并将它们发送到任务管理器中的一个或多个(取决于任务并行性)执行槽。来自Flink documentation:
每个worker(TaskManager)都是一个JVM进程,可以在不同的线程中执行一个或多个子任务。为了控制工人接受的任务数量,工人有所谓的任务槽(至少一个)。]