기술나눔

56. Flink DataStream의 관리 실행 구성에 대한 자세한 설명

2024-07-08

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

1. 개요
1. 구성 실행

StreamExecutionEnvironment 포함ExecutionConfig, 이를 통해 작업별 구성 값을 런타임에 설정할 수 있습니다.

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

다음은 사용 가능한 구성 옵션입니다. (기본적으로 굵은 글씨)

  • setClosureCleanerLevel() . 클로저 클리너 수준은 기본적으로 다음으로 설정됩니다.ClosureCleanerLevel.RECURSIVE . 클로저 클리너는 Flink 프로그램의 익명 함수 호출 클래스에 대한 불필요한 참조를 제거합니다. 클로저 클리너를 비활성화한 후 사용자의 익명 함수는 직렬화할 수 없는 호출 클래스를 참조할 수 있습니다. 이로 인해 직렬 변환기에서 예외가 발생합니다. 설정 가능한 값은 다음과 같습니다.NONE: 클로저 클리너를 완전히 비활성화합니다.TOP_LEVEL: 필드로 재귀되지 않고 최상위 클래스만 정리합니다.RECURSIVE: 모든 필드를 재귀적으로 정리합니다.
  • getParallelism() / setParallelism(int parallelism) . 작업의 기본 병렬 처리 수준을 설정합니다.
  • getMaxParallelism() / setMaxParallelism(int parallelism) . 작업에 대한 기본 최대 병렬 처리를 설정합니다. 이 설정은 최대 병렬 처리 수준을 결정하고 동적 크기 조정의 상한을 지정합니다.
  • getNumberOfExecutionRetries() / setNumberOfExecutionRetries(int numberOfExecutionRetries) . 실패한 작업을 다시 실행하는 횟수를 설정합니다. 0 값은 내결함성을 효과적으로 비활성화합니다.-1 시스템 기본값(구성에 정의됨)을 사용함을 나타냅니다.이 구성은 더 이상 사용되지 않습니다. 대신 다시 시작 전략을 사용하세요.
  • getExecutionRetryDelay() / setExecutionRetryDelay(long executionRetryDelay) . 작업이 실패한 후 다시 실행하기 전에 시스템이 기다리는 지연(밀리초)을 설정합니다. TaskManager에서 모든 작업이 성공적으로 중지되면 지연 시간이 계산되고 지연 시간이 지나면 작업이 다시 시작됩니다.이 구성은 더 이상 사용되지 않습니다. 대신 다시 시작 전략을 사용하세요.
  • getExecutionMode() / setExecutionMode() . 기본 실행 모드는 PIPELINED입니다. 프로그램을 실행하기 위한 실행 모드를 설정합니다. 실행 모드는 데이터 교환이 일괄 처리 모드로 수행되는지 아니면 스트리밍 모드로 수행되는지 정의합니다.
  • enableForceKryo() / disableForceKryo . Kryo는 기본적으로 강제로 사용되지 않습니다. POJO로 구문 분석될 수 있더라도 GenericTypeInformation이 POJO에 대해 Kryo 직렬 변환기를 사용하도록 강제합니다. 어떤 경우에는 이 구성을 활성화하는 것이 좋습니다. 예를 들어 Flink의 내부 직렬 변환기가 POJO를 올바르게 처리하지 못하는 경우입니다.
  • enableForceAvro() / disableForceAvro() . Avro는 기본적으로 강제로 사용되지 않습니다. Flink AvroTypeInfo가 Kryo 대신 Avro 직렬 변환기를 사용하여 Avro POJO를 직렬화하도록 합니다.
  • enableObjectReuse() / disableObjectReuse() . 기본적으로 개체는 Flink에서 재사용되지 않습니다. 객체 재사용 모드를 활성화하면 성능 향상을 위해 런타임에 사용자 객체를 재사용하도록 지시합니다. 버그가 발생할 수 있으니 주의하세요.
  • getGlobalJobParameters() / setGlobalJobParameters() . 이 방법을 사용하면 사용자가 작업의 전역 구성에 사용자 정의 개체를 설정할 수 있습니다.왜냐하면ExecutionConfig 모든 사용자 정의 함수에 액세스할 수 있으므로 작업 전반에 걸쳐 구성을 전역적으로 사용할 수 있게 만드는 쉬운 방법입니다.
  • addDefaultKryoSerializer(Class type, Serializer serializer) . 지정된 형식에 대한 Kryo 직렬 변환기 인스턴스를 등록합니다.
  • addDefaultKryoSerializer(Class type, Class