Azure Event Hubs schließt die Integration von Apache Spark ab
Anwendern der Event Hubs steht Apache Spark über einen Connector nun in vollem Umfang für den Bau von End-to-End-Streaming-Anwendungen zur Verfügung.
Das Team hinter den Azure Event Hubs gibt die allgemeine Verfügbarkeit (GA) von Apache Spark bekannt. Das Framework für Cluster Computing stellt unter anderem Module für SQL, Machine Learning und Graph Processing sowie Streaming bereit. Anwender der Event Hubs können Spark daher nun in vollem Umfang einsetzen, um End-to-End-Streaming-Anwendungen zu bauen. Der Spark-Connector der Event Hubs unterstützt dafür Spark Core, Spark Streaming und Structured Streaming for Spark (Versionen 2.1 bis 2.3). Die erforderlichen Codezeilen zum Aufsetzen eines Streams zeigt das folgende Listing:
import org.apache.spark.eventhubs._
import org.apache.spark.sql.SparkSession
val eventHubsConf = EventHubsConf("{EVENT HUB CONNECTION STRING FROM AZURE PORTAL}")
.setStartingPosition(EventPosition.fromEndOfStream)
// Create a stream that reads data from the specified Event Hub.
val spark = SparkSession.builder.appName("SimpleStream").getOrCreate()
val eventHubStream = spark.readStream
.format("eventhubs")
.options(eventHubsConf.toMap)
.load()
Die beiden skalierbaren, fehlertoleranten Stream Processing Engines Spark Streaming und Structured Streaming stellen für die Verarbeitung der Daten komplexe Algorithmen auf Basis von Funktionen wie map, reduce, join und window bereit. Spark erlaubt auf die Weise auch Machine Learning oder Graphanalysen. Zudem lassen sich die Daten in ein Filesystem oder eine Datenbank weiterreichen – bei Bedarf auch zurück in die Azure Event Hubs.
Der Azure Event Hubs Connector for Apache Spark steht nebst umfassender Dokumentation als Open Source auf GitHub zum Download zur Verfügung. (map)