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 流程中,您可以摄取许多不同的来源,然后单独或一起处理它们。
也可以摄取一个源,并让多个团队在此基础上构建流程,而无需多次摄取数据。
我关于 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 流程中,您可以摄取许多不同的来源,然后单独或一起处理它们。
也可以摄取一个源,并让多个团队在此基础上构建流程,而无需多次摄取数据。