パラレル・データ・ストリーム
FLINKプログラムは、本質的に並列分散手続きFLINKと、タスク(変換/オペレーター、データソース及び受信機)の複数から構成されています。
実行時には、ストリームは、1つを有する以上のパーティションを流れ、それぞれが一つ以上の演算子operator * *サブタスク。
オペレータは、互いに独立してサブタスクと異なるスレッドで実行することができ、そしてこれらのスレッドは、異なるマシンまたはコンテナ上で実行することができます。
特定のオペレータのサブタスクのオペレータの並列処理の数です。
常にオペレータを生成する並列ストリームの並列。
同じプログラムの異なるオペレータは、並列処理の異なるレベルを有することができます。
イラスト:
データストリームは、一つのモード1つ(または再配置)または再分配モードで2つのキャリア間で送信されてもよいです。
- 一つの流れ
- 上の図ソースとマップ事業者間
- 保持要素をゾーニングと仕分け
- ことをこれは、マップのオペレータサブタスク[1]が表示されるソース生成[1]同じサブタスクオペレーター配列エレメントを
- 流れの再配布
- 上記にマップ及びkeyBy /窓の間、及びkeyBy /窓とシンクとの間の再配分の流れ
- 選択された変換に応じて異なる目標サブタスクに各オペレータサブタスク送信データを、。
- 図データ再配分はkeybyオペレータに従って行われます。
- 一つの流れ
タスクの並列処理の設定
オペレータレベル
あなたはそのsetParallelism()メソッドを呼び出すことにより、単一のオペレータ並列、データソース又は受信機を定義することができます。
//1.初始化环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //2.读取数据源,并进行转换操作 DataStream<Tuple2<String, Integer>> dataStream = env .socketTextStream("ronnie01", 9999) .flatMap(new Splitter()) .keyBy(0) //每5秒触发一批计算 .timeWindow(Time.seconds(5)) // 设置并行度 .sum(1).setParallelism(3);
レベルの実行環境
実行環境レベルの並列性は、すべてのミッション演算子の並列データソースとデータ受信機です。
実行環境は、明示的並列処理により、オペレータの並列性をカバーすることができます。
//1.初始化环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setParallelism(3);
クライアントレベル
- FLINKにジョブを投入すると、並列度は、並列処理のパラメータ-p指定を使用することにより、クライアント側に設けてもよいです。
- 例えば:
- ./bin/flink実行-p 10 ../examples/WordCount-java.jar
システムレベル
- parallelism.default flink_home / confに/ FLINK-conf.yamlコンフィギュレーションファイルを設定する項目を設定することで、デフォルトの並列度を定義します。
FLINKタスク並列処理
おすすめ
転載: www.cnblogs.com/ronnieyuan/p/11846623.html
ランキング