私はそれがどのように起こるか把握しようとしています:複数のsocketTextStreamからプログラムを読み込み、これらのテキストストリームを別々のデータフローに送ります。ジョブ)。私はマシンがパフォーマンスに深刻なボトルネックになるように、すべてのソースタスクは一台のマシンにスケジュールされていることが判明したクラスタ上でジョブを実行するとき、しかしFlink SocketTextStreamのソースが1台のマシンにスケジュールされています
for(int i =0; i< hosts.length; i++) {
DataStream<String> someStream = env.socketTextStream(hosts[i], ports[i]);
DataStream<Tuple2<String, String>> joinedAdImpressions = rawMessageStream.rebalance() ...
}
:それは以下のようなものを探します。どのようなアイデアが起こるでしょうか?
ありがとうございます!
私はsocketTextStreamをあまり使いこなすことはありませんでした。だから私は方向を見ることをお勧めします。 kafkaトピックをデータソース(env.addSource(FlinkKafkaConsumer))として使用する場合、クラスタのパーティションが1つしかない場合、kafkaデータソースから受け取ったすべてのデータは1台のマシンにのみ送信されます。だから私は3の並列性を持っている場合、データは3つのうちの1つを通って流れます(あなたがそれが1つのマシンを流れるだけであることを意味するものであることを確かめたい)。これは似たようなものだと思いますが、データソースの種類が異なるだけです。 – Jicaar