2

Wir erstellen ein Echtzeit-Big-Data-Tool mit Open-Source-Tools. Unser Hauptziel ist es, ein Netzwerk zu überwachen und zu analysieren, indem wir Protokolle von einem Kafka-Server in Echtzeit abrufen. Wir haben in Tutorials gesehen, dass wir unser Tool in zwei Abschnitte unterteilen müssen: Analytic und Supervision, wie unten gezeigt.Wie verbinde ich elasticsearch mit apache spark streaming oder storm?

enter image description here

Zur Überwachung Abschnitt haben wir uns für die Lösung Elasticsearch und Logstash.

In Bezug auf die Abschnittsanalyse vergleichen mein Team und ich Apache Storm Streaming und Apache Storm, um es mit Elasticsearch zu verwenden. Trotz der Tatsache, dass Apache Storm ein echtes Echtzeit-Datenverarbeitungstool und schneller als Apache Spark Streaming ist, bietet es keine Maschinenlernbibliotheken wie Apache Spark. Deshalb denken wir darüber nach, Apache Spark zu wählen. Die elastische Website weist darauf hin, dass ein ES-Hadoop-Connector vorhanden ist, um eine Elasticsearch-Datenbank mit einem Hadoop-Ökosystem zu verbinden. Wir können das in der folgenden Abbildung sehen. enter image description here

Allerdings sind wir ein wenig verwirrt mit diesem Bild, weil es nur Funken SQL und nicht alle Funken Frameworks (MLlib, Spark Streaming ..) gibt. Wir haben einige Annahmen gemacht und wir haben zwei mögliche Architekturen entwickelt. Wir wollten nur wissen, ob es technisch korrekt ist und ob wir nicht in die falsche Richtung gehen.

Mit Apache Spark-Streaming: enter image description here

Mit Apache Storm: enter image description here

Antwort

1

Sowohl Ihre architektonische Diagramme sind ok. Denken Sie daran, dass das Streamen von Funken in diesem Szenario nicht funktioniert. Es-hadoop bietet Ihnen einen einfachen Zugang apis, um Daten von und in elastisch zu bekommen und zu setzen. Es stellt auch die Methoden zur Verfügung, um die Daten in das Spark-Framework (RDD) oder Datenrahmen im Falle von Spark-SQL zu bekommen. Sobald sich die Daten im Framework befinden, können alle ml-Bibliotheken auf die Daten für die ml- oder Analysegenerierung angewendet werden. Elastic ist nicht in der Lage, Daten zu streamen, so dass ein Funkenstreaming im engeren Sinne nicht möglich ist. Also im Diagramm kann der Pfeil zu hdfs optional und dann zum Funken-Streaming entfernt werden und der Pfeil juat pointa zu hdfs. Mein Anliegen wäre jedoch, mllib algos auf den Daten in Echtzeit laufen zu lassen und Echtzeit-Performance zu erwarten. Ein typischer Anwendungsfall ist die Offline-Modwl-Generierung und die Verwendung des Modells in Echtzeit zur Analyse.

+0

danke Ramdev. In Bezug auf Ihr Interesse sah ich, dass K-Bedeutung und lineare Regressions-Algorithmen in Spark in Echtzeit verwendet werden können. Außerdem habe ich das Interesse von spark sql nicht wirklich verstanden. Und du erklärst mir das? –

+0

Die Verfügbarkeit von Spark SQL ist so, dass die Daten, die sich einmal im Spark-Datenframe befinden, mit einfachen SQL-Anweisungen abgefragt werden können. Es ist verfügbar. Wenn Ihr Workflow jedoch nicht wirklich die Daten in relationaler Datenverarbeitung behandelt, ist Spark SQL nicht das Werkzeug, das Sie verwenden würden. Spark SQL ist nur eine weitere Möglichkeit, auf die Elastic-Daten zuzugreifen (da die meisten mit der Verwendung von RDBMS zur Datenmanipulation vertraut sind). – Ramdev