Apache Heron ist ein Open Source Tool, das ursprünglich von Twitter entwickelt wurde, um umfassende Datenmengen zu analysieren. Im Fokus stehen dabei vor allem große Datenmengen, die in kurzer Zeit analysiert werden sollen.
Twitter nutzt Apache Heron beispielsweise dazu, Wörter in Tweets zu zählen oder Trends bei den Tweets zu erkennen.
(Bild: T. Joos)
Apache Heron ist ein Open Source Tool zur verteilten, fehlertoleranten Streaming-Verarbeitung in Echtzeit. Das Tool kommt vor allem bei der Verwaltung von Werbung, dem Monitoring für Real Time Trends und Machine Learning sowie für Real Time Business Intelligence zum Einsatz. Twitter nutzt Apache Heron beispielsweise dazu, Wörter in Tweets zu zählen oder Trends bei den Tweets zu erkennen. Für den Einsatz von Heron werden Java 11, Python 3.6 und Python 4.1.0 benötigt.
Heron als Ergänzung zu Storm bei Twitter, Microsoft und Google im Einsatz
Entwickelt wurde das Tool von Twitter, um Storm ersetzen oder ergänzen zu können. Nach kurzer Zeit hat Heron im Bereich des Streamings von Echtzeitdaten Storm bei Twitter abgelöst. Neben der besseren Leistung hat Heron einen weiteren Vorteil: Es benötigt sehr viel weniger CPU-Leistung und Arbeitsspeicher.
Aus diesem Grund unterstützt Heron auch die APIs von Storm, Apache Beam und anderen Lösungen. Heron ist erweiterbar und kann als Streaming-Engine für verschiedene Einsatzbereiche genutzt werden. Namhafte Unternehmen wie Google, Microsoft, die Standford University und andere setzen auf die Funktionen von Heron.
Seit 2016 steht es als Open Source unter der Apache-Lizenz zur Verfügung und hat den Inkubator-Status. Bei Twitter ist Heron bereits seit Jahren im produktiven Betrieb und hat seinen Nutzen unter Beweis gestellt. Heron zeichnet sich durch hohen Datendurchlauf und geringe Latenzen aus. Das ist bei der Verarbeitung von Echtzeitdaten im Petabyte-Bereich natürlich unerlässlich. Die einzelnen Komponenten dazu sind in C++ geschrieben.
Das sind die Ziele von Apache Heron
Apache Heron unterstützt verschiedene Programmiersprachen. Dazu gehören unter anderem auch C++, Java und auch Python. Einzelne Aufgaben, die zur Analyse genutzt werden, kann Heron voneinander isolieren. Dadurch lassen sich Profile und verschiedene Container nutzen, in den auch unterschiedliche Daten analysiert werden. In diesem Zusammenhang kann auch für den kompletten Betrieb von Heron auf Container gesetzt werden. Heron unterstützt in diesem Zusammenhang auch Kubernetes.
Die Architektur von Heron – Sprouts und Bolts
Im Zentrum der Architektur von Heron steht der Scheduler, der die einzelnen Topologien verwaltet, über die Heron seine Daten bezieht. Der Topology-Master im Master-Container verwaltet wiederum die einzelnen Daten-Container und auch die Berechtigungen für den Zugriff auf Heron. In einer Heron-Architektur tragen Streaming-Anwendungen die Bezeichnung „Topologie“. Dabei handelt es sich um einen azyklischen Graphen (DAG), dessen Knoten die Aufgabe haben, datenverarbeitende Elemente darzustellen und Datenströme zu erfassen.
Die Heron-Weboberfläche
(Bild: T. Joos)
Dabei kommen in Heron vor allem „Sprouts“ und „Bolts“ als Node (Knoten) zum Einsatz. Bei Sprouts handelt es sich um die Verbindungen zu den Datenquellen zum Einspeisen von Daten in die Datenströme. Die Bolts verarbeiten eingehende Daten und geben Daten auch weiter. Diese weitergegebenen Daten können wiederum von anderen Bolts weiterverarbeitet werden.
In einer Umgebung kann es mehrere Sprouts geben, die Datenquellen anzapfen und Datenströme erzeugen. Diese Datenströme erfassen wiederum die verschiedenen Bolts in der Infrastruktur. Dabei kann es auch komplexe Infrastrukturen mit zahlreichen Sprouts und Bolts geben. In einem solchen Szenario können mehrere Sprouts unterschiedliche Bolts mit Datenströmen versorgen, während wiederum die Bolts verschiedene Datenströme weiterleiten, die von einem weiteren Bolt verarbeitet werden. Das schafft natürlich sehr flexible Szenarien zur Verarbeitung von Streaming-Daten.
Komponenten von Heron parallel betreiben und gruppieren
Abhängig von den zu verarbeitenden Daten kommt es natürlich häufig vor, dass ein einzelner Sprout oder Bolt nicht ausreicht, um Datenströme effektiv zu verwalten. Selbst wenn ein Sprout dazu in der Lage ist, kann es passieren, dass der Node, auf dem der Sprout läuft, überlastet wird. Daher gibt es in Heron auch die Möglichkeit, mit einer intelligenten Topologie mehrere Prozesse aufzubauen, die parallel voneinander funktionieren.
Alle Knoten in einem Heron-Cluster erfasst die Anzahl an gleichzeitigen Instanzen, die auf dem System laufen. Dabei berücksichtigt das System Sprouts und Bolts gleichermaßen. Hier können Entwickler auch definieren, welche Parallelität zum Einsatz kommen soll. Dadurch bieten sich flexible Möglichkeiten die Leistung eines Heron-Clusters auf Basis der parallelen Prozesse zu steuern. Auf verschiedenen Knoten ist es daher möglich unterschiedliche Werte für parallele Prozesse zu definieren.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
Wenn die Parallelität festgelegt ist, also die Anzahl an Instanzen von Sprouts und Bolts, die auf den Knoten eingesetzt werden können, muss auch noch festgelegt werden, wie Heron die Daten auf die Instanzen verteilen soll. Dazu kommt die Gruppierung zum Einsatz. Hierüber lässt sich steuern, welche Sprout-Instanz zu welcher Bolt-Instanz Datenströme senden soll.
Neben der Möglichkeit Daten, statisch zu senden, also genau festzulegen welche Sprout- und Bolt-Instanzen zusammenarbeiten, kann Heron die Daten natürlich auch nach dem Zufallsprinzip verteilen. Es lassen sich auch komplexe Szenarien abbilden und umfassende Regeln erstellen, auch im hybriden Betrieb.
Die Parallelität, Gruppierung und die damit verbundenen Regeln und Richtlinien lassen sich zu Containern zusammenfassen. Hier können Entwickler wiederum definieren, wie viel CPU-Ressourcen und Arbeitsspeicher zur Verfügung stehen sollen. Es lassen sich natürlich auch mehrere Container definieren. Wer keine verschiedenen Container einsetzen will, kann auch die ganze Struktur in einem einzelnen Container umsetzen. Das ist das Standardverhalten von Heron, wenn Entwickler keine Container definieren. Die Container werden wiederum an den bereits erwähnten Scheduler übermittelt, der die Ausführung der Container einplant.