关于ApacheFlink框架的问题。有没有办法在一个flink作业中支持多个流媒体源,比如kafka和twitter?有什么解决办法吗?我们可以在一个flink作业中同时处理多个流媒体源吗?我目前工作在Spark流,这是那里的限制。其他流式框架如apachesamza、storm或nifi是否可以实现这一点?人们期待已久的回应。
chhqkbe11#
已经讨论了一些解决方案,我只想补充一点,在nifi流中,您可以摄取许多不同的源,并单独或一起处理它们。也可以接收一个源,让多个团队在此基础上构建流,而不需要多次接收数据。
62o28rlo2#
是的,这在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);
对于使用低级api的storm,模式类似。请参阅apachestormbolt从不同的spout/bolt接收多个输入元组
2条答案
按热度按时间chhqkbe11#
已经讨论了一些解决方案,我只想补充一点,在nifi流中,您可以摄取许多不同的源,并单独或一起处理它们。
也可以接收一个源,让多个团队在此基础上构建流,而不需要多次接收数据。
62o28rlo2#
是的,这在flink和storm中是可能的(不知道samza或nifi…)
您可以添加任意数量的源操作符,每个操作符都可以从不同的源中使用。
对于使用低级api的storm,模式类似。请参阅apachestormbolt从不同的spout/bolt接收多个输入元组