4. Tolerancia a fallas de computación de flujo

1. ¿Por qué necesita tolerancia a fallas?

dos, estado

Tres, tipo de backend de estado

4. Estrategia de reinicio

Cuando falla una tarea, Flink necesita reiniciar la tarea defectuosa y otras tareas afectadas para restaurar el estado de ejecución normal del trabajo. La estrategia de reinicio se puede configurar de dos maneras

1) Archivo de configuración flink-conf.yaml

reiniciar-estrategia.retraso fijo.intentos:3

reiniciar-estrategia.fixed-delay.delay:5

2) Basado en la configuración del código

  env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
                5, //尝试重启次数
                org.apache.flink.api.common.time.Time.of(5,TimeUnit.SECONDS)));//超时时间

Reponer:

//1、异常退出,不用重启,默认为该策略
 env.setRestartStrategy(RestartStrategies.noRestart());


//2、固定重启次数策略
env.setRestartStrategy(RestartStrategies.fixedDelayRestart(
    5, //尝试重启次数
     org.apache.flink.api.common.time.Time.of(5,TimeUnit.SECONDS)));//超时时间


//3、频率重启次数(5分钟内,重记了5次,还有异常就退出,否则重新计算)
 env.setRestartStrategy(RestartStrategies.failureRateRestart(
     5, //尝试重启次数
      org.apache.flink.api.common.time.Time.of(5,TimeUnit.MINUTES),
      org.apache.flink.api.common.time.Time.of(5,TimeUnit.SECONDS)));//重启之间的时间间隔

//4、基于Checkpoint行为
env.enableCheckpointing(5000);

5. Mecanismo de Recuperación

 

1. Por defecto, el estado se perderá y se recalculará

2. Abra la falla del punto de control para restaurar el estado y continuar ejecutando

 env.enableCheckpointing(5000);//状态存在内存中
#如果要保留cp的内容,需要指定存储方式,如下保存到文件中
env.setStateBackend(new FsStateBackend("file:flink/cpdir",false));//将cp结果保存到文件

3. Active la opción para mantener el archivo de punto de control y actualice el trabajo según el punto de control.

1) Modificar flink-conf.yaml

state.backend: filesystem
#配置checkpoint&savepoint
state.checkpoints.dir: file:///tmp/chkdir
state.savepoints.dir: file:///tmp/spdir

3配置失败重启策略
restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 2 s
#配置checkpoint保存个数
state.checkpoints.num-retained: 2
#配置local recovery for this state backend(任务恢复的方式)
state.backend.local-recovery: true

 2) Envíe la tarea -> (el programa se cierra de forma anormal o cierre manualmente la tarea) cierre la tarea -> restaure la tarea

bin/flink run -m localhost:4000 -c java类名 jar包路径

#停止flink任务
bin/flink cancel  任务ID

bin/flink run -m localhost:4000 -s checkpoint目录(file:///tmp/chkdir/任务ID/chk-364)  -c java类名 jar包路径

4. Active el punto de guardado y actualice el trabajo basado en el punto de guardado


bin/flink savepoint flink作业ID #创建savepoint
#停止以前的作业,然后从savepoint启动

 bin/flink run -m localhost:4000 -s  savepoint的目录(file:///flink/savepoint/xxxx) -c 类名 jar包目录

 6. Cambios y actualizaciones de la topología informática

Supongo que te gusta

Origin blog.csdn.net/lzzyok/article/details/120686491
Recomendado
Clasificación