Lectura del código fuente de Flink (11) --- Tiempo de reinicio de la tarea de Flink
En circunstancias normales en el clúster de Flink, la tarea solo se reiniciará cuando ocurra una excepción según la estrategia de reinicio.
? Determine la ubicación de la TM de acuerdo con el intervalo de latidos configurado y el tiempo de espera de latido. Si se activa:
El TaskManager hace que todas las tareas del trabajo de la TM fallen y el JobManager. marca la tarea como fallida y también fallará y planeará nuevamente.
Cierre la conexión entre TaskManager y ResourceManager. TaskManager intentará volver a registrarse en ResourceManager. ResourceManager también cerrará la conexión entre TaskManager y ResourceManager y luego iniciará la cancelación del registro en SlotManager. Después de cancelar el registro, SlotManager liberará todos los espacios correspondientes y notificará a JobMaster que falle la tarea de asignación correspondiente de acuerdo con AllocationID. Si el registro aún no se realiza correctamente después del tiempo máximo de registro, el proceso de TaskManager se cerrará.
Yarn notificará a Flink ResourceManager que un contenedor ha salido. En este momento, ResourceManager cerrará la conexión con el contenedor y manejará la falla de la tarea con referencia a la descripción en 2.1.2 anterior.
? TaskManager buscará un nuevo JobManager según Zookeeper:
?1. El tiempo de espera para encontrar el nuevo JobManager: en este momento, todas las tareas fallan y luego se vuelven a ejecutar. se inicia el registro;
?2. El tiempo de espera para encontrar el nuevo JobManager: cuando expire el tiempo de espera, todas las tareas fallarán, espere a que se encuentre el nuevo JobManager y luego comience a volver a registrarse; /p>
Una vez que JobManager cambia, inevitablemente se reiniciará la tarea. Al mismo tiempo, si ResourceManager cambia, también se iniciará el nuevo registro.
Una vez que JobManager cambia, la tarea se reinicia; ocurrirá inevitablemente.
Aquí le recomendamos un excelente artículo sobre la tolerancia a fallas de Flink "Comprensión profunda de la tolerancia a fallas de Flink".