Compartilhamento de tecnologia

56. Explicação detalhada da configuração de execução de gerenciamento do Flink DataStream

2024-07-08

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

1. Visão Geral
1. Execute a configuração

StreamExecutionEnvironment ContémExecutionConfig, que permite que valores de configuração específicos do trabalho sejam definidos em tempo de execução.

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

A seguir estão as opções de configuração disponíveis: (negrito por padrão)

  • setClosureCleanerLevel() . O nível do limpador de fechamento é definido por padrão paraClosureCleanerLevel.RECURSIVE . O limpador de fechamento remove referências desnecessárias a classes de chamada de função anônima no programa Flink. Depois de desabilitar o limpador de fechamento, a função anônima do usuário pode fazer referência a alguma classe de chamada não serializável. Isso fará com que o serializador lance uma exceção. Os valores configuráveis ​​são:NONE: desativar completamente o limpador de fechamento,TOP_LEVEL: Limpe apenas classes de nível superior sem recorrer aos campos,RECURSIVE: Limpe todos os campos recursivamente.
  • getParallelism() / setParallelism(int parallelism) . Define o grau padrão de paralelismo para trabalhos.
  • getMaxParallelism() / setMaxParallelism(int parallelism) . Define o paralelismo máximo padrão para trabalhos. Esta configuração determina o grau máximo de paralelismo e especifica um limite superior na escalabilidade dinâmica.
  • getNumberOfExecutionRetries() / setNumberOfExecutionRetries(int numberOfExecutionRetries) . Defina o número de vezes que as tarefas com falha serão reexecutadas. Um valor zero desativa efetivamente a tolerância a falhas.-1 Indica o uso de padrões do sistema (definidos na configuração).Esta configuração está obsoleta. Em vez disso, use a estratégia de reinicialização.
  • getExecutionRetryDelay() / setExecutionRetryDelay(long executionRetryDelay) . Define o atraso (em milissegundos) que o sistema aguarda antes de executar novamente um trabalho após ele falhar. Depois que todas as tarefas forem interrompidas com êxito nos TaskManagers, o atraso é calculado e, uma vez passado o atraso, as tarefas são reiniciadas.Esta configuração foi descontinuada. Em vez disso, use a estratégia de reinicialização.
  • getExecutionMode() / setExecutionMode() . O modo de execução padrão é PIPELINED. Defina o modo de execução para executar o programa. O modo de execução define se a troca de dados é realizada em modo batch ou streaming.
  • enableForceKryo() / disableForceKryo . Kryo não é forçado a ser usado por padrão. Força GenericTypeInformation a usar o serializador Kryo para POJOs, mesmo que eles possam ser analisados ​​como POJOs. Em alguns casos, deve ser preferível ativar esta configuração. Por exemplo, quando o serializador interno do Flink não consegue manipular POJOs corretamente.
  • enableForceAvro() / disableForceAvro() . Avro não é forçado a ser usado por padrão. Force o Flink AvroTypeInfo a usar o serializador Avro em vez do Kryo para serializar POJOs Avro.
  • enableObjectReuse() / disableObjectReuse() . Por padrão, os objetos não são reutilizados no Flink. A ativação do modo de reutilização de objetos instrui o tempo de execução a reutilizar objetos do usuário para obter melhor desempenho. Observe que isso pode causar bugs.
  • getGlobalJobParameters() / setGlobalJobParameters() . Este método permite ao usuário definir um objeto personalizado na configuração global do trabalho.porqueExecutionConfig Acessível em todas as funções definidas pelo usuário, portanto, esta é uma maneira fácil de disponibilizar configurações globalmente em trabalhos.
  • addDefaultKryoSerializer(Class type, Serializer serializer) . Registra uma instância do serializador Kryo para o tipo especificado.
  • addDefaultKryoSerializer(Class type, Class