2017-07-12 6 views
0

Ich benutze Flink Streaming, um die Daten von Kafka zu lesen und die Daten zu verarbeiten. Bevor ich beim Programmstart von Kafka konsumiere, muss ich eine Datei mit einer DataSet-API lesen und die Datei anhand einiger Kriterien sortieren und daraus eine Liste erstellen. Dann fängt es an, von Kafka in einer strömenden Weise zu konsumieren. Ich habe eine Logik geschrieben, um die Daten aus einer Datei mit DataSet API zu lesen und zu sortieren. Aber wenn ich versuche, das Programm zu tun, wird es nie ausgeführt und der Flink fängt sofort an, von Kafka zu konsumieren. Gibt es eine Möglichkeit, den Datensatz zuerst zu bearbeiten und dann in Flink zu streamen?Kann ich die DataSet-API und die DataStream-API in demselben Flink-Job verwenden?

Antwort

1

Nein, es ist nicht möglich, die DataSet- und DataStream-APIs zu mischen. Sie können jedoch beide Programme von der gleichen main()-Methode starten, aber das sortierte Ergebnis des DataSet-Programms in eine Datei schreiben, die vom DataStream-Programm verwendet wird.

+0

@ Fabian Hueske Ich habe beide Programme von der gleichen main() -Methode gestartet, aber jetzt, wenn ich den Job im Flink Dashboard ausführe, wird der Streaming-Job nie ausgelöst, nur das Dataset Program wird ausgeführt und flink sagt dann, dass der Job beendet ist . Warum wird das Streaming-Programm nicht nach Datensatz-Programm ausgelöst? Können Sie mich in diesem – Dhinesh

+0

@ Fabian führen Könnten Sie mir bitte auf diese Frage helfen. https://stackoverflow.com/questions/46282692/match-based-on-some-property-between-two-data-streams-and-collect-all-based-on-m – Kumar

0

Erstellen Sie einen weiteren Flink-Job für Ihre DataSet-Manipulation und versenken Sie die Ergebnisse an den Kafka, den Ihr Streaming-Job verbraucht.

Verwandte Themen