技術共有

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) 。失敗したタスクを再実行する回数を設定します。値をゼロにすると、事実上フォールト トレランスが無効になります。-1 システムのデフォルト (構成で定義) を使用することを示します。この構成は非推奨です。代わりに再起動戦略を使用してください。
  • getExecutionRetryDelay() / setExecutionRetryDelay(long executionRetryDelay) 。ジョブが失敗した後、ジョブを再実行するまでにシステムが待機する遅延 (ミリ秒単位) を設定します。タスクマネージャーですべてのタスクが正常に停止された後、遅延が計算され、遅延が経過するとタスクが再開されます。この構成は廃止されました。代わりに再起動戦略を使用してください。
  • 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