Ich habe eine Quelle implementiert, die einen festen UDP-Port öffnet und ihn abhört. Also, ich möchte genau eine Quelle pro Task-Manager ausführen (in meinem Fall führe ich einen Task-Manager pro Knoten), weil übermäßig eine Exception java.net.BindException: Address already in use
ausgelöst wird.Wie wird eine Quelle pro Task-Manager (oder pro Knoten) ausgeführt?
Ich bemerke dieses Problem, wenn Test HA von Apache Flink. Als ich einen Task-Manager heruntergefahren habe, hat der Apache Flick versucht, zwei Quellen mit demselben Port auf einem Knoten laufen zu lassen.
So, wie genau eine Quelle pro Task-Manager (oder pro Cluster-Knoten) ausführen?
Haben Sie versucht mit der Einstellung der Parallelität auf die Anzahl der Knoten, die Sie haben? – Chobeat
Wie wird es dynamisch gemacht (basierend auf Anzahl Task-Manager oder Knoten)? –
Aus dem doc: "Die Standardparallelität kann für einen gesamten Job durch Aufruf von setParallelism (int parallelism) in der ExecutionEnvironment oder durch Übergabe von -p an das Flink Kommandozeilen-Frontend überschrieben werden. Sie kann durch Aufruf von setParallelism für einzelne Transformationen überschrieben werden (int parallelism) auf einem Operator. Weitere Informationen zur Parallelität finden Sie im Programmierhandbuch. " –
Chobeat