{"id":176239,"date":"2023-05-13T18:32:03","date_gmt":"2023-05-13T17:32:03","guid":{"rendered":"https:\/\/liora.io\/de\/?p=176239"},"modified":"2026-02-06T06:48:29","modified_gmt":"2026-02-06T05:48:29","slug":"apache-storm-was-ist-das-wozu-benutzt-man-es","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/apache-storm-was-ist-das-wozu-benutzt-man-es","title":{"rendered":"Apache Storm: Was ist das? Wozu benutzt man es?"},"content":{"rendered":"<h3>Was ist Apache Storm ?<\/h3>\n<strong>Apache Storm<\/strong> ist ein verteiltes <a href=\"https:\/\/liora.io\/de\/open-source-definition\">Open-Source-System<\/a> zur Verarbeitung von Echtzeit-Datenstr\u00f6men, das haupts\u00e4chlich in Clojure entwickelt wurde. Es erm\u00f6glicht die Verwaltung von kontinuierlichen Datenstr\u00f6men. Storm wird heute vielfach in sozialen Netzwerken, Online-Spielen oder auch in industriellen \u00dcberwachungssystemen eingesetzt.\n\n<strong>Apache Storm<\/strong> wurde urspr\u00fcnglich von Nathan Marz f\u00fcr das Startup Backtype entwickelt, das von Twitter aufgekauft wurde.\n\nApache Storm legt gro\u00dfen Wert darauf, so einfach wie m\u00f6glich zu bleiben, was es Entwicklern erm\u00f6glicht, Topologien mit jeder Programmiersprache zu erstellen. Die Entwicklung von Storm erfordert die Manipulation von Tupeln (zur Erinnerung: Ein Tupel ist eine benannte Liste von Werten).\n\nDiese Tupel k\u00f6nnen jeden beliebigen Objekttyp enthalten, und selbst wenn Apache Storm den Typ nicht kennt, ist es leicht m\u00f6glich, einen Serialisierer zu implementieren.\n<h3>Wie ist Apache Storm aufgebaut?<\/h3>\nApache Storm verwendet eine &#8222;Master &#8211; Slave&#8220; Architektur mit den folgenden Komponenten:\n<ul>\n \t<li><strong>Nimbus:<\/strong> Dies ist der Masterknoten, der f\u00fcr die Verteilung des Codes unter den Supervisoren, die Zuweisung der Eingabedatens\u00e4tze an die Maschinen zur Verarbeitung und die \u00dcberwachung von Ausf\u00e4llen verantwortlich ist.<\/li>\n \t<li><strong>Zookeeper:<\/strong> Koordiniert und verwaltet die Prozesse der Datenverteilung.\nSupervisors: Dienste, die auf jedem Worker-Knoten ausgef\u00fchrt werden, die die Arbeitsprozesse verwalten und ihre Ausf\u00fchrung \u00fcberwachen.<\/li>\n \t<li><strong>Workers:<\/strong> Sind die mehreren oder einzelnen Prozesse auf jedem Knoten, die von den Supervisors gestartet werden. Sie f\u00fchren eine parallele Verwaltung von Dateneingaben durch und senden die Daten an eine <a href=\"https:\/\/liora.io\/de\/datenbank-data-management-weiterbildung\">Datenbank oder ein Dateisystem.<\/a><\/li>\n<\/ul>\n<figure>\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"\/\">\n<img decoding=\"async\" width=\"638\" height=\"425\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image3.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image3.png 638w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image3-300x200.png 300w\" sizes=\"(max-width: 638px) 100vw, 638px\">\t\t\t\t\t\t\t\t<\/a><figcaption><\/figcaption><\/figure>\n<h3>Topologie des Tools<\/h3>\nDie Topologie in <strong>Apache Storm<\/strong> verwendet ein <strong>azyklisches gerichtetes Graphensystem (DAG)<\/strong>. Sie funktioniert \u00e4hnlich wie die MapReduce-Jobs in <a href=\"https:\/\/liora.io\/de\/hadoop\">Hadoop.<\/a>\n\nDie Topologie besteht aus den folgenden Elementen:\n<ul>\n \t<li><strong>Spouts:<\/strong> Sie sind der Eingangspunkt f\u00fcr die Datenstr\u00f6me. Sie verbinden sich mit der Datenquelle, rufen die Daten kontinuierlich ab, wandeln die Informationen in Tupelstr\u00f6me um und senden diese Ergebnisse an die Bolts.<\/li>\n \t<li><strong>Bolts:<\/strong> Sie speichern die Verarbeitungslogik. Sie f\u00fchren verschiedene Funktionen aus (z. B. Aggregation, Joining, Filtern usw.). Die Ausgabe erzeugt \u00fcber zus\u00e4tzliche Bolts neue Str\u00f6me f\u00fcr eine neue Verarbeitung oder speichert die Daten in einer Datenbank oder einem Dateisystem.<\/li>\n<\/ul>\n<figure>\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"\/\">\n<img decoding=\"async\" width=\"800\" height=\"400\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-3.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-3.png 800w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-3-300x150.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-3-768x384.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\">\t\t\t\t\t\t\t\t<\/a>\n\n<figcaption><\/figcaption><\/figure>\nDieses Schema zeigt, dass die Topologie in<strong> Apache Storm<\/strong> eine Verkettung von Verarbeitungsschritten ist, deren Verteilung von Bolts und Spouts sehr schnelle Ergebnisse erm\u00f6glicht.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/terminvereinbarung\">Apache Storm lernen mit Liora<\/a><\/div><\/div>\n\n<h3>Modell der Parallelit\u00e4t in Apache Storm: Was ist das?<\/h3>\n<strong>Apache Storm<\/strong> verwendet ein auf Tasks und Bolts basierendes Parallelisierungsmodell. Die Daten werden von einer Reihe paralleler Tasks verarbeitet, die mithilfe von Bolts miteinander verbunden sind.\n\nJede der Aufgaben verarbeitet eine Teilmenge der Eingabedaten, und die Bolts erm\u00f6glichen es, die Aufgaben miteinander zu verbinden, um Datenstr\u00f6me zu erzeugen.\n\nDadurch kann Storm die Daten auf verteilte Weise verarbeiten, was die Leistung erh\u00f6ht, wenn mehrere Maschinen die Daten gleichzeitig verarbeiten.\n\n<strong>DRPCs (Distributed Remote Procedure Call)<\/strong> erm\u00f6glichen die Parallelisierung von sehr intensiven und verbrauchsintensiven Berechnungen. Sie verhalten sich mehr oder weniger wie ein Spout, mit dem Unterschied, dass die Datenquellen die Argumente der Funktion sind und diese eine Antwort in Form von Text oder json f\u00fcr jeden dieser Streams zur\u00fcckgibt.\n\nSie sind n\u00fctzlich f\u00fcr zeitraubende Berechnungen, um die Antwortzeiten zu verk\u00fcrzen.\n\nAuch interessant: <a href=\"https:\/\/liora.io\/de\/apache-schulung-wie-lerne-ich-hadoop-spark-und-cassandra\">Apache Schulung<\/a>\n<h3>Fehlertoleranz in Apache Storm<\/h3>\nBei der Verwaltung von <a href=\"https:\/\/liora.io\/de\/big-data-definition-technologien-anwendungen-weiterbildung\">Big-Data-Prozessen<\/a> kann die Informations\u00fcberlastung zu Fehlern oder Ausf\u00e4llen auf bestimmten Clustern f\u00fchren. Daher ist es wichtig, dass Storm trotz eines Ausfalls weiterarbeiten kann.\n\nWenn ein Worker fehlschl\u00e4gt oder ausf\u00e4llt, wird er von Storm automatisch neu gestartet.\n\nWenn ein ganzer Knoten abst\u00fcrzt, startet Storm die Aufgaben, die auf anderen Workern liefen, neu. Auch wenn der Nimbus oder die Supervisoren abst\u00fcrzen, werden sie automatisch neu gestartet.\n\nEs ist sogar m\u00f6glich, das Beenden eines Prozesses zu erzwingen (z. B. mit taskkill -9), ohne Cluster oder Topologien zu beeinflussen.\n\nAuch interessant: <a href=\"https:\/\/liora.io\/de\/transactional-database-alles-was-du-wissen-musst\">Transactional Database<\/a>\n<h3>Die verschiedenen Garantieniveaus<\/h3>\nStorm bietet mehrere Garantiestufen f\u00fcr die Verarbeitung von Datenstr\u00f6men an:\n<ul>\n \t<li><strong>At most once:<\/strong> Dies ist die Standard-Garantiestufe. Sie garantiert, dass jedes Tupel mindestens einmal verarbeitet wird.<\/li>\n \t<li><strong>At least once:<\/strong> Diese Garantie bedeutet, dass jedes Tupel mindestens einmal verarbeitet wird. Sie kann dazu f\u00fchren, dass einige Tupel doppelt verarbeitet werden.<\/li>\n \t<li><strong>Exactly once:<\/strong> Diese Garantie bedeutet, dass jedes Tupel genau einmal verarbeitet wird. Dies ist die h\u00f6chste Garantiestufe, aber auch die komplizierteste, da sie Bibliotheken von Drittanbietern erfordert.<\/li>\n<\/ul>\n<h3>Trident<\/h3>\nTrident ist eine <strong>High-Level-Abstraktion<\/strong>, die eine <a href=\"https:\/\/liora.io\/de\/api-programmierung-und-dokumentation-mit-python-flask-swagger-und-connexion\">API<\/a> f\u00fcr die Transformation und Aggregation von Daten in Echtzeit bereitstellt. Es erm\u00f6glicht Entwicklern, sich auf die Gesch\u00e4ftslogik zu konzentrieren, anstatt sich mit den Details der Implementierung von Verarbeitungsaufgaben zu besch\u00e4ftigen. Es bietet eine Statusverwaltung, was die Verwaltung von Daten im Speicher f\u00fcr langfristige Verarbeitungsaufgaben erleichtert, und es unterst\u00fctzt verteilte Transaktionen, um die Zuverl\u00e4ssigkeit der Daten zu gew\u00e4hrleisten.\n<h3>Apache Storm vs. Apache Spark<\/h3>\nObwohl diese beiden Technologien, Apache Storm und <a href=\"https:\/\/liora.io\/de\/apache-spark\">Apache Spark<\/a>, unterschiedliche Verwendungszwecke haben, werden sie dennoch beide h\u00e4ufig bei der Verwaltung von Big Data eingesetzt. Die folgende Tabelle zeigt den Vergleich zwischen diesen beiden Technologien.\n\n<style type=\"text\/css\">\n.tg {border-collapse:collapse;border-spacing:0;}<br \/>\n.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;<br \/>\n  overflow:hidden;padding:10px 5px;word-break:normal;}<br \/>\n.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;<br \/>\n  font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}<br \/>\n.tg .tg-0x09{background-color:#9b9b9b;text-align:left;vertical-align:top}<br \/>\n.tg .tg-baqh{text-align:center;vertical-align:top}<br \/>\n.tg .tg-9fd4{background-color:#9b9b9b;font-weight:bold;text-align:left;vertical-align:top}<br \/>\n.tg .tg-pykm{background-color:#9b9b9b;font-weight:bold;text-align:center;vertical-align:top}<br \/>\n<\/style>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>Storm<\/th>\n<th>Spark<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Architektur<\/td>\n<td>Micro-batch<\/td>\n<td>Micro-batch\/batch<\/td>\n<\/tr>\n<tr>\n<td>Type de traitement<\/td>\n<td>Streaming Echtzeit<\/td>\n<td>Streaming Echtzeit und Batch-Bearbeitung<\/td>\n<\/tr>\n<tr>\n<td>Latenz<\/td>\n<td>Ein paar Millisekunden<\/td>\n<td>Ein paar Sekunden<\/td>\n<\/tr>\n<tr>\n<td>Skalierbarkeit<\/td>\n<td>Tausende Knoten<\/td>\n<td>Zehntausende Knoten<\/td>\n<\/tr>\n<tr>\n<td>Unterst\u00fctzte Sprachen<\/td>\n<td>Keine Unterscheidung<\/td>\n<td>Java, Scala, Python, R<\/td>\n<\/tr>\n<tr>\n<td>Benutzung<\/td>\n<td>Bearbeitung von Datenstr\u00f6men in Echtzeit<\/td>\n<td>Bearbeitung von Datenstr\u00f6men in Echtzeit und Stapelverarbeitung<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Fazit<\/h3>\nZusammenfassend l\u00e4sst sich sagen, dass <strong>Apache Storm<\/strong> ein System zur Verarbeitung von verteilten Datenstr\u00f6men ist, mit dem gro\u00dfe Datenmengen in Echtzeit effizient und zuverl\u00e4ssig verarbeitet werden k\u00f6nnen.\n\nMit seiner flexiblen und skalierbaren Plattform hat sich Apache Storm als beliebte Wahl f\u00fcr Unternehmen erwiesen, die Daten in Echtzeit verarbeiten und entsprechende Entscheidungen treffen wollen.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/terminvereinbarung\">Entdecke die Apache Storm Weiterbildungen<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Was ist Apache Storm ? Apache Storm ist ein verteiltes Open-Source-System zur Verarbeitung von Echtzeit-Datenstr\u00f6men, das haupts\u00e4chlich in Clojure entwickelt wurde. Es erm\u00f6glicht die Verwaltung von kontinuierlichen Datenstr\u00f6men. Storm wird heute vielfach in sozialen Netzwerken, Online-Spielen oder auch in industriellen \u00dcberwachungssystemen eingesetzt. Apache Storm wurde urspr\u00fcnglich von Nathan Marz f\u00fcr das Startup Backtype entwickelt, das [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":176240,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-176239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=176239"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176239\/revisions"}],"predecessor-version":[{"id":217545,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176239\/revisions\/217545"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/176240"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=176239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=176239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}