Apache Flink,比 Kafka 分区更多的线程
Apache Flink, more threads than Kafka partitions
数据流很简单
kafka -> 一些逻辑 -> kafka
和 'some logic' 是这里的瓶颈所以我想使用更多 threads/tasks 来增加吞吐量而不是增加 kafka 分区(目前为 3)。输入和输出主题之间的顺序在这里无关紧要。
使用 Apache Storm 可以轻松完成。我可以为某些逻辑增加螺栓的并行度。我如何使用 Flink 做到这一点?更普遍的问题是,是否有任何简单的方法可以在 Flink 的不同阶段使用不同的并行性?
这在Flink中很简单。您可以使用 setParallelism()
方法指定每个运算符的并行度:
DataStream<String> rawEvents = env
.addSource(new FlinkKafkaConsumer010("topic", new SimpleStringSchema(), props));
DataSteam<String> mappedEvents = rawEvents
.flatMap(new Tokenizer())
.setParallelism(64); // set parallelism to 64
数据流很简单
kafka -> 一些逻辑 -> kafka
和 'some logic' 是这里的瓶颈所以我想使用更多 threads/tasks 来增加吞吐量而不是增加 kafka 分区(目前为 3)。输入和输出主题之间的顺序在这里无关紧要。
使用 Apache Storm 可以轻松完成。我可以为某些逻辑增加螺栓的并行度。我如何使用 Flink 做到这一点?更普遍的问题是,是否有任何简单的方法可以在 Flink 的不同阶段使用不同的并行性?
这在Flink中很简单。您可以使用 setParallelism()
方法指定每个运算符的并行度:
DataStream<String> rawEvents = env
.addSource(new FlinkKafkaConsumer010("topic", new SimpleStringSchema(), props));
DataSteam<String> mappedEvents = rawEvents
.flatMap(new Tokenizer())
.setParallelism(64); // set parallelism to 64