Compartir tecnología

56. Explicación detallada de la configuración de ejecución de gestión de Flink DataStream

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Información general
1. Ejecutar configuración

StreamExecutionEnvironment ContieneExecutionConfig, que permite establecer valores de configuración específicos del trabajo en tiempo de ejecución.

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
ExecutionConfig executionConfig = env.getConfig();

Las siguientes son las opciones de configuración disponibles: (en negrita por defecto)

  • setClosureCleanerLevel() . El nivel de limpieza de cierre está configurado de forma predeterminada enClosureCleanerLevel.RECURSIVE . El limpiador de cierre elimina referencias innecesarias a clases de llamadas a funciones anónimas en el programa Flink. Después de deshabilitar el limpiador de cierre, la función anónima del usuario puede estar haciendo referencia a alguna clase de llamada no serializable. Esto hará que el serializador lance una excepción. Los valores configurables son:NONE: desactivar completamente el limpiador de cierre,TOP_LEVEL: Solo limpia clases de nivel superior sin recurrir a campos,RECURSIVE: Limpia todos los campos de forma recursiva.
  • getParallelism() / setParallelism(int parallelism) . Establece el grado predeterminado de paralelismo para los trabajos.
  • getMaxParallelism() / setMaxParallelism(int parallelism) . Establece el paralelismo máximo predeterminado para los trabajos. Esta configuración determina el grado máximo de paralelismo y especifica un límite superior en el escalado dinámico.
  • getNumberOfExecutionRetries() / setNumberOfExecutionRetries(int numberOfExecutionRetries) . Establezca el número de veces que se vuelven a ejecutar las tareas fallidas. Un valor de cero desactiva efectivamente la tolerancia a fallas.-1 Indica el uso de los valores predeterminados del sistema (definidos en la configuración).Esta configuración está obsoleta; utilice la estrategia de reinicio en su lugar.
  • getExecutionRetryDelay() / setExecutionRetryDelay(long executionRetryDelay) . Establece el retraso (en milisegundos) que espera el sistema antes de volver a ejecutar un trabajo después de que falla. Después de que todas las tareas se detengan exitosamente en TaskManagers, se calcula el retraso y una vez que el retraso ha pasado, las tareas se reinician.Esta configuración ha quedado obsoleta; utilice la estrategia de reinicio en su lugar.
  • getExecutionMode() / setExecutionMode() . El modo de ejecución predeterminado es PIPELINED. Establezca el modo de ejecución para ejecutar el programa. El modo de ejecución define si el intercambio de datos se realiza en modo por lotes o en modo streaming.
  • enableForceKryo() / disableForceKryo . Kryo no está obligado a usarse de forma predeterminada. Obliga a GenericTypeInformation a utilizar el serializador Kryo para POJO aunque puedan analizarse como POJO. En algunos casos, se debe preferir habilitar esta configuración. Por ejemplo, cuando el serializador interno de Flink no puede manejar los POJO correctamente.
  • enableForceAvro() / disableForceAvro() . Avro no está obligado a usarse de forma predeterminada. Fuerza a Flink AvroTypeInfo a usar el serializador Avro en lugar de Kryo para serializar los POJO de Avro.
  • enableObjectReuse() / disableObjectReuse() . De forma predeterminada, los objetos no se reutilizan en Flink. Al habilitar el modo de reutilización de objetos, se indica al tiempo de ejecución que reutilice los objetos del usuario para obtener un mejor rendimiento. Tenga en cuenta que esto puede causar errores.
  • getGlobalJobParameters() / setGlobalJobParameters() . Este método permite al usuario establecer un objeto personalizado como configuración global del trabajo.porqueExecutionConfig Accesible en todas las funciones definidas por el usuario, por lo que es una forma sencilla de hacer que las configuraciones estén disponibles globalmente en todos los trabajos.
  • addDefaultKryoSerializer(Class type, Serializer serializer) . Registra una instancia de serializador Kryo para el tipo especificado.
  • addDefaultKryoSerializer(Class type, Class