假设我有一组具有不同功能(即不同的CPU、内存等)的机器。有什么方法可以确定要运行的特定操作员(或任务)的位置?是否可以更改操作员的默认运行位置?
我读到了“任务链和资源组”。但是,我认为这并不能解决我的问题。
Flink中有什么具体配置吗?如果不是,代码的哪一部分可能与这个假设相关?
taskmanager.numberOfTaskSlots 属性可以作为指示不同任务管理器的相对工作能力的途径。您可能必须根据计算机上的可用资源来调整任务槽和内存分配选项。
就我个人而言,我更喜欢使用容器(例如 docker)来解决此类问题。这样,您可以让所有任务管理器进行相同的配置,并让容器系统中的编排工具根据可用资源将更多或更少的虚拟实例分配给物理机。
每组任务都可以标记为某个名称和 ID,如下所示:
inputStream
.map()
.keyBy()
.window()
.reduce()
.name("enriching customer orders info")
.uid("enriching customer orders info")
这样每个操作员都可以被唯一地识别 你可以在 DAG 中看到这些名字
希望这有帮助。