apache flink job中支持多个流

4urapxun  于 2021-06-21  发布在  Flink
关注(0)|答案(2)|浏览(602)

关于ApacheFlink框架的问题。
有没有办法在一个flink作业中支持多个流媒体源,比如kafka和twitter?有什么解决办法吗?我们可以在一个flink作业中同时处理多个流媒体源吗?
我目前工作在Spark流,这是那里的限制。
其他流式框架如apachesamza、storm或nifi是否可以实现这一点?
人们期待已久的回应。

chhqkbe1

chhqkbe11#

已经讨论了一些解决方案,我只想补充一点,在nifi流中,您可以摄取许多不同的源,并单独或一起处理它们。
也可以接收一个源,让多个团队在此基础上构建流,而不需要多次接收数据。

62o28rlo

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接收多个输入元组

相关问题