【问题标题】:Multiple Streams support in Apache Flink JobApache Flink Job 中的多流支持
【发布时间】:2016-11-06 17:35:14
【问题描述】:

关于 Apache Flink 框架的问题。

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

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

Apache Samza、Storm 或 NIFI 等其他流式传输框架是否可以实现这一点?

期待已久的回复。

【问题讨论】:

    标签: frameworks apache-flink apache-nifi flink-streaming


    【解决方案1】:

    是的,这在 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,模式类似。见An Apache Storm bolt receive multiple input tuples from different spout/bolt

    【讨论】:

    • 对。谢谢你的回答。我们可以在 spark 项目中添加这个 flink 接收器吗?是否有任何中间件可以加入 flink 流与 apache spark。
    • 我从未使用过 Spark。没有线索。此外,我不知道有任何中间件可以将 Flink 和 Spark 结合起来——我想知道你为什么要首先这样做......
    • 其实我正在做 spark 项目。但是我无法使用火花流在单个作业中从多个流源中流式传输数据。所以我想使用 flink 来克服这个问题。以及真正知道如何加入这两者。
    • 我不知道如何做到这一点...当然,您不能将两者混合在同一个应用程序代码中。您可能希望在两者之间使用一层。例如,用 Flink 做一些处理,将结果写入某个地方(可能是 Kafka),然后将其读入 Spark。
    • 是的。这是我想知道的。谢谢:)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 2018-02-27
      • 1970-01-01
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      相关资源
      最近更新 更多