Heim > Java > javaLernprogramm > Hauptteil

Wie man mit Java eine Flink-basierte Stream-Verarbeitungs- und Stapelverarbeitungsanwendung entwickelt

WBOY
Freigeben: 2023-09-21 13:21:19
Original
709 Leute haben es durchsucht

Wie man mit Java eine Flink-basierte Stream-Verarbeitungs- und Stapelverarbeitungsanwendung entwickelt

So verwenden Sie Java, um eine Flink-basierte Stream-Verarbeitungs- und Stapelverarbeitungsanwendung zu entwickeln

Zusammenfassung: Flink ist eine verteilte Stream-Verarbeitungs-Engine, die auf Ereigniszeit basiert und auch Stapelverarbeitung unterstützt. In diesem Artikel wird erläutert, wie Sie mithilfe der Java-Sprache eine Flink-basierte Stream- und Stapelverarbeitungsanwendung entwickeln und entsprechende Codebeispiele bereitstellen.

1. Hintergrundeinführung: Flink ist eine leistungsstarke und zuverlässige Stream-Verarbeitungs-Engine. Sie zeichnet sich durch geringe Latenz und hohen Durchsatz aus und kann eine Vielzahl von Szenarien wie unbegrenzten Datenfluss, Stapelverarbeitung und iterative Verarbeitung verarbeiten Rechnen. Flink bietet außerdem umfangreiche APIs und Tools sowie Integrationsunterstützung für Drittsysteme.

2. Umgebungsvorbereitung

Zuerst müssen Sie Java Development Kit (JDK) und Apache Flink installieren. Stellen Sie sicher, dass die Umgebungsvariablen korrekt konfiguriert sind. Mit dem folgenden Befehl können Sie überprüfen, ob sie korrekt installiert ist:

java -version
flink --version
Nach dem Login kopieren

3. Stream-Verarbeitungsanwendung

3.1 Projekterstellung

Erstellen Sie zunächst ein neues Maven-Projekt und fügen Sie Flink-Abhängigkeiten hinzu. Fügen Sie der pom.xml-Datei den folgenden Inhalt hinzu:

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-java_2.11</artifactId>
        <version>1.9.3</version>
    </dependency>
</dependencies>
Nach dem Login kopieren

3.2 Datenquelle

In Flink heißt die Streaming-Datenquelle Quelle. Das Folgende ist ein Beispielcode, der über die Quellfunktion einen Datenstrom mit den Zahlen 1 bis 100 erstellt:

DataStream<Integer> stream = env.fromCollection(Arrays.asList(1, 2, 3, ..., 100));
Nach dem Login kopieren

3.3 Datenkonvertierung und -verarbeitung

Flink bietet eine Fülle von Konvertierungs- und Verarbeitungsfunktionen, mit denen verschiedene Vorgänge am Datenstrom ausgeführt werden können. Das Folgende ist ein Beispielcode, der zu jedem Element im Datenstrom 1 hinzufügt und gerade Zahlen herausfiltert:

DataStream<Integer> result = stream
    .map(new MapFunction<Integer, Integer>() {
        @Override
        public Integer map(Integer value) throws Exception {
            return value + 1;
        }
    })
    .filter(new FilterFunction<Integer>() {
        @Override
        public boolean filter(Integer value) throws Exception {
            return value % 2 == 0;
        }
    });
Nach dem Login kopieren

3.4 Ergebnisausgabe

Flink unterstützt die Ausgabe von Ergebnissen an verschiedene Ziele, wie Konsolen, Dateien, Datenbanken usw. Das Folgende ist ein Beispielcode, der die Ergebnisse an die Konsole ausgibt:

result.print();
Nach dem Login kopieren
Nach dem Login kopieren

3.5 Führen Sie die Stream-Verarbeitungsanwendung aus

Führen Sie abschließend die Stream-Verarbeitungsanwendung über die Ausführungsfunktion aus:

env.execute("Stream Processing Job");
Nach dem Login kopieren

4.1 Projekterstellung

In ähnlicher Weise fügen Sie in Maven Flink-Abhängigkeiten zum Projekt hinzu.

4.2 Datenquelle
Die Datenquelle der Stapelverarbeitungsanwendung verwendet DataSet. Das Folgende ist ein Beispielcode, der über die fromElements-Funktion einen Datensatz mit Zeichenfolgen erstellt:

ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSet<String> dataSet = env.fromElements("Hello", "World");
Nach dem Login kopieren

4.3 Datenkonvertierung und -verarbeitung
Flink bietet Konvertierungs- und Verarbeitungsfunktionen ähnlich der Stream-Verarbeitung, mit denen verschiedene Vorgänge am Datensatz ausgeführt werden können. Hier ist ein Beispielcode, der jede Zeichenfolge im Datensatz in Großbuchstaben umwandelt und Zeichenfolgen mit einer Länge von mehr als 3 herausfiltert:

DataSet<String> result = dataSet
    .map(new MapFunction<String, String>() {
        @Override
        public String map(String value) throws Exception {
            return value.toUpperCase();
        }
    })
    .filter(new FilterFunction<String>() {
        @Override
        public boolean filter(String value) throws Exception {
            return value.length() > 3;
        }
    });
Nach dem Login kopieren

4.4 Ergebnisausgabe
Ähnlich wie Stream-Verarbeitungsanwendungen unterstützen Stapelverarbeitungsanwendungen auch die Ausgabe von Ergebnissen an unterschiedliche Ziele.

4.5 Führen Sie Stapelverarbeitungsanwendungen aus. Führen Sie Stapelverarbeitungsanwendungen aus, indem Sie die Ausführungsfunktion aufrufen:

result.print();
Nach dem Login kopieren
Nach dem Login kopieren
. 5. Zusammenfassung und Ausblick. In diesem Artikel werden die grundlegenden Schritte zur Verwendung von Java zum Entwickeln einer Flink-basierten Stream- und Stapelverarbeitungsanwendung vorgestellt , und gibt Entsprechende Codebeispiele werden bereitgestellt. Mit Flink können wir schnell leistungsstarke und zuverlässige Stream- und Batch-Verarbeitungsanwendungen erstellen und diese auch in andere Systeme integrieren. Ich hoffe, dass dieser Artikel den Lesern helfen kann, die grundlegenden Methoden zur Verwendung von Flink zum Entwickeln von Anwendungen zu verstehen und zu beherrschen und sie weiter auf tatsächliche Projekte anzuwenden.

Das obige ist der detaillierte Inhalt vonWie man mit Java eine Flink-basierte Stream-Verarbeitungs- und Stapelverarbeitungsanwendung entwickelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage