Apache Flink 作业中的多流支持

Multiple Streams support in Apache Flink Job

我关于 Apache Flink 框架的问题。

有什么方法可以在单个 flink 作业中支持多个流媒体源,如 kafka 和 twitter?有没有工作around.Can 我们在单个 flink 作业中一次处理多个流源?

我目前在 Spark Streaming 工作,这是那里的限制。

这是否可以通过 Apache Samza、Storm 或 NIFI 等其他流式处理框架实现?

期待答复。

是的,这在 Flink 和 Storm 中是可能的(不知道 Samza 或 NIFI...)

您可以根据需要添加任意数量的源运算符,每个运算符都可以使用不同的源。

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

Properties properties = ... // see Flink webpage for more details    

DataStream<String> stream1 = env.addSource(new FlinkKafkaConsumer08<>("topic", new SimpleStringSchema(), properties);)
DataStream<String> stream2 = env.readTextFile("/tmp/myFile.txt");

DataStream<String> allStreams = stream1.union(stream2);

对于使用低级别的 Storm API,模式类似。参见

已经介绍了一些解决方案,我只想补充一点,在 NiFi 流程中,您可以摄取许多不同的来源,然后单独或一起处理它们。

也可以摄取一个源,并让多个团队在此基础上构建流程,而无需多次摄取数据。