2016-11-06 3 views
1

Meine Frage in Bezug auf Apache Flink-Framework.Mehrere Streams Unterstützung in Apache Flink Job

Gibt es eine Möglichkeit, mehr als eine Streaming-Quelle wie Kafka und Twitter in einem einzigen Flink-Job zu unterstützen? Gibt es irgendwelche Arbeiten? Können wir mehr als eine Streaming-Quelle gleichzeitig in einem einzigen Flink-Job verarbeiten?

Ich arbeite derzeit in Spark Streaming und das ist die Begrenzung dort.

Ist dies durch andere Streaming-Frameworks wie Apache Samza, Storm oder NIFI erreichbar?

Antwort wird sehr erwartet.

Antwort

2

Ja, das ist möglich in Flink und Storm (keine Ahnung über Samza oder Nifi ...)

Sie als Betreiber viel Quelle hinzufügen können, wie Sie wollen und jeder aus einer anderen Quelle konsumieren.

StreamExecutionEnvironment see = 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); 

Für Storm mit Low-Level-API ist das Muster ähnlich. Siehe An Apache Storm bolt receive multiple input tuples from different spout/bolt

+0

Right.Thanks für die Antwort. Können wir diesen flink Empfänger in funken Projekt hinzufügen? Gibt es irgendeine Middleware, die mit apache funken in flink streaming eingeht? – Sadaf

+0

Ich habe nie Spark verwendet. Keine Ahnung. Außerdem bin ich mir keiner Middleware bewusst, die Flink und Spark kombinieren könnte - und ich frage mich, warum Sie das überhaupt machen wollen ... –

+0

Eigentlich arbeite ich gerade an einem Spark-Projekt. Aber ich kann Daten von mehreren streaming Quellen in einem einzelnen Job dort nicht streamen, das Funken-streaming benutzt. So möchte ich dieses Problem mit flink überwinden. und wirklich, was man wissen kann, wie man diesen beiden beitritt. – Sadaf