1. Flink-Übersicht1.1 Grundlegende EinführungZu den Hauptfunktionen gehören: Batch- und Stream-Integration, präzises Statusmanagement, Ereigniszeitunterstützung und Exactly-Once-Statuskonsistenzgarantie. Flink kann nicht nur auf einer Vielzahl von Ressourcenverwaltungs-Frameworks wie YARN, Mesos und Kubernetes ausgeführt werden, sondern unterstützt auch die unabhängige Bereitstellung auf Bare-Metal-Clustern. Wenn die Hochverfügbarkeitsoption aktiviert ist, gibt es keinen einzelnen Ausfallpunkt. Hier müssen zwei Konzepte erläutert werden:
1.2 AnwendungsszenarienDatengesteuert Ereignisgesteuerte Anwendungen müssen keine Remote-Datenbanken abfragen. Lokaler Datenzugriff ermöglicht ihnen einen höheren Durchsatz und geringere Latenz. Am Beispiel des Betrugsbekämpfungsfalls schreibt DataDriven das Verarbeitungsregelmodell in die DatastreamAPI und abstrahiert dann die gesamte Logik zur Flink-Engine. Wenn Ereignisse oder Daten einfließen, wird das entsprechende Regelmodell ausgelöst. Sobald die Bedingungen in der Regel ausgelöst werden, verarbeitet DataDriven sie schnell und benachrichtigt die Geschäftsanwendung. Datenanalyse Im Vergleich zur Batch-Analyse entfällt bei der Streaming-Analyse die Notwendigkeit regelmäßiger Datenimport- und Abfrageprozesse, sodass die Latenzzeit beim Abrufen von Indikatoren aus Ereignissen geringer ist. Darüber hinaus müssen Batch-Abfragen mit künstlichen Datengrenzen umgehen, die durch periodische Importe und Eingabegrenzen verursacht werden, während Streaming-Abfragen dieses Problem nicht berücksichtigen müssen. Flink bietet gute Unterstützung sowohl für kontinuierliche Streaming-Analysen als auch für Batch-Analysen und verarbeitet und analysiert Daten in Echtzeit. Es wird häufig in Szenarien wie Echtzeit-Großbildschirmen und Echtzeitberichten verwendet. Datenpipeline Im Vergleich zu periodischen ETL-Aufgaben können kontinuierliche Datenpipelines die Latenz beim Verschieben von Daten zum Ziel erheblich reduzieren. Beispielsweise kann auf Grundlage des vorgelagerten StreamETL eine Echtzeitbereinigung oder -erweiterung durchgeführt und nachgelagert ein Echtzeit-Data Warehouse erstellt werden, um die Aktualität von Datenabfragen sicherzustellen und eine hocheffiziente Datenabfrageverbindung zu bilden. Dieses Szenario ist bei Media-Stream-Empfehlungen oder Suchmaschinen sehr verbreitet. 2. Umgebungsbereitstellung2.1. Installationspaketverwaltung
2.2 Cluster-KonfigurationVerwaltungsknoten
Verteilte Knoten
Die beiden Konfigurationen werden mit allen Clusterknoten synchronisiert. 2.3. Starten und Stoppen
Startprotokoll:
2.4 Web-Schnittstelle Besuchen Sie: 3. Entwicklungseintrittsfall3.1 DatenskriptVerteilen Sie ein Datenskript an jeden Knoten:
3.2. Einführung grundlegender AbhängigkeitenHier ist ein einfacher Fall, geschrieben in Java. <Abhängigkeiten> <Abhängigkeit> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.7.0</version> </Abhängigkeit> <Abhängigkeit> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.7.0</version> </Abhängigkeit> </Abhängigkeiten> 3.3. Dateidaten lesenHierbei werden die Daten der Datei direkt ausgelesen und die Häufigkeit des Vorkommens der einzelnen Wörter über den Programmablauf analysiert. öffentliche Klasse WordCount { öffentliche statische void main(String[] args) wirft Exception { // Dateidaten lesen readFile(); } öffentliche statische void readFile () wirft Exception { // 1. Ausführungsumgebung erstellen ExecutionEnvironment environment = ExecutionEnvironment.getExecutionEnvironment(); // 2. Datendatei lesen String filePath = "/var/flink/test/word.txt"; DataSet<String> Eingabedatei = Umgebung.readTextFile(Dateipfad); // 3. Gruppieren und summieren Sie DataSet<Tuple2<String, Integer>> wordDataSet = inputFile.flatMap(new WordFlatMapFunction( )).groupBy(0).sum(1); // 4. Verarbeitungsergebnisse drucken wordDataSet.print(); } //Methode zum Lesen und Ausschneiden von Daten static class WordFlatMapFunction implements FlatMapFunction<String, Tuple2<String, Integer>> { @Überschreiben öffentliche void flatMap(String-Eingabe, Collector<Tuple2<String, Integer>> Collector){ String[] WortArr = Eingabe.split(","); für (String-Wort: WortArr) { Sammler.sammeln(neues Tupel2<>(Wort, 1)); } } } } 3.4. Portdaten lesenErstellen Sie einen Port auf dem Dienst hop01 und simulieren Sie das Senden einiger Daten an den Port:
Verwenden Sie das Flink-Programm, um den Dateninhalt des Ports zu lesen und zu analysieren: öffentliche Klasse WordCount { öffentliche statische void main(String[] args) wirft Exception { //Portdaten lesen readPort(); } öffentliche statische void readPort () wirft Exception { // 1. Ausführungsumgebung erstellen StreamExecutionEnvironment environment = StreamExecutionEnvironment.getExecutionEnvironment(); // 2. Lesen Sie den Socket-Datenport DataStreamSource<String> inputStream = environment.socketTextStream("hop01", 5566); // 3. Methode zum Lesen und Schneiden von Daten SingleOutputStreamOperator<Tuple2<String, Integer>> resultDataStream = inputStream.flatMap( neue FlatMapFunction<String, Tuple2<String, Integer>>() { @Überschreiben public void flatMap(String input, Collector<Tuple2<String, Integer>> collector) { String[] WortArr = Eingabe.Split(","); für (String-Wort: WortArr) { Sammler.sammeln(neues Tupel2<>(Wort, 1)); } } }).keyBy(0).sum(1); // 4. Analyseergebnisse drucken resultDataStream.print(); // 5. Umgebungsstart environment.execute(); } } IV. Funktionsweise4.1. FlinkClientDer Client dient zum Vorbereiten und Senden von Datenströmen an den JobManager-Knoten. Anschließend kann der Client je nach Bedarf die Verbindung direkt trennen oder den Verbindungsstatus aufrechterhalten und auf die Ergebnisse der Aufgabenverarbeitung warten. 4.2 JobManagerIn einem Flink-Cluster werden ein JobManger-Knoten und mindestens ein TaskManager-Knoten gestartet. Nachdem der JobManager die vom Client übermittelte Aufgabe empfangen hat, koordiniert er sie und sendet sie zur Ausführung an einen bestimmten TaskManager-Knoten. Der TaskManager-Knoten sendet Heartbeat- und Verarbeitungsinformationen an den JobManager. 4.3 TaskManagerEin Slot ist die kleinste Ressourcenplanungseinheit im TaskManager. Die Anzahl der Slots wird beim Start festgelegt. Jeder Slot kann eine Aufgabe starten, vom JobManager-Knoten bereitgestellte Aufgaben empfangen und bestimmte Analysen und Verarbeitungen durchführen. 5. QuellcodeadresseGitHub-Adresse https://github.com/cicadasmile/big-data-parent GitEE-Adresse https://gitee.com/cicadasmile/big-data-parent Oben finden Sie eine kurze Erläuterung der Details des Aufbaus und des Betriebsmechanismus des Echtzeit-Computerframeworks Flink Cluster. Weitere Informationen zum Aufbau und dem Betriebsmechanismus des Echtzeit-Computerframeworks Flink Cluster finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Der visuelle Designpfad der Website sollte den Benutzergewohnheiten entsprechen
>>: Lösung für das Problem, dass MySQL Daten sehr langsam löscht und einfügt
MySQL ist einfach zu installieren, schnell und ve...
1. Verwenden Sie immer :key in v-for Die Verwendu...
1. MySQL-Datenbank herunterladen und installieren...
Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...
1. Vorbereitung 1.1 Hafen herunterladen Harbor-Do...
HTML ist die Abkürzung für Hypertext Markup Langua...
Es gibt zwei gängige Möglichkeiten, den Div-Hinte...
01. Befehlsübersicht Linux bietet ein umfangreich...
Vorwort Wie wir alle wissen, ist in Linux alles e...
Teil 1: Grundlagen 1. Im Gegensatz zu Pseudoklass...
Der Cut-Befehl in Linux und Unix dient dazu, aus ...
Inhaltsverzeichnis Hintergrund 1. Was ist DNS-Pre...
Inhaltsverzeichnis 1. Was ist Docker Compose? 2. ...
Erstellen einer Tabelle CREATE TABLE `map` ( `id`...
Tomcat selbst optimieren Tomcat-Speicheroptimieru...