Apache Flink 作业中的多流支持

Sad*_*daf 4 frameworks apache-flink apache-nifi flink-streaming

我关于 Apache Flink 框架的问题。

有没有办法在单个 flink 作业中支持多个流源,如 kafka 和 twitter?有什么解决方法。我们可以在单个 flink 作业中一次处理多个流源吗?

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

这是否可以通过其他流框架(如 Apache Samza、Storm 或 NIFI)实现?

期待已久的回应。

Mat*_*Sax 6

是的,这在 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);
Run Code Online (Sandbox Code Playgroud)

对于使用低级 API 的 Storm,模式类似。请参阅Apache Storm bolt 从不同的 spout/bolt 接收多个输入元组