HDInsight Spark en Kafka gebruiken

Voltooid

Als data engineer moet u het meest geschikte type HDInsight-cluster bepalen om uw oplossing te bouwen. Spark- en Kafka-clusters, wanneer ze samen worden gebruikt, bieden een uitstekende manier om realtime of bijna realtime gegevensstromen op te nemen en te verwerken.

Kafka gebruiken om realtime gegevens op te nemen

Apache Kafka kan worden gebruikt als een berichtensysteem, een publicatie-abonnementssysteem of als een platform voor streamingverwerking. Er worden gegevens opgeslagen in een logboek dat realtime kan worden gelezen, verwerkt en tegelijkertijd kan worden gelezen door meerdere consumenten.

Gestructureerd streamen van Spark gebruiken om realtime gebeurtenissen te verwerken

Apache Spark is een opensource-engine voor gedistribueerde gegevensverwerking die in veel omstandigheden kan worden gebruikt om snel gegevens op schaal te verwerken, op te vragen, te analyseren en te transformeren. Spark wordt vaak gebruikt voor het uitvoeren van ETL- en SQL-taken op big data, het verwerken van streaminggegevens en het uitvoeren van machine learning.

Gestructureerde Spark-streaming heeft functies die niet beschikbaar zijn op andere platforms, zoals fouttolerantiegaranties, de mogelijkheid om batch- en streaminggegevens te koppelen, de mogelijkheid om late binnenkomende gegevens af te handelen en nog veel meer waarover we verderop in deze module meer te weten komen. Met Azure HDInsight kunt u ook een VNET maken dat zowel uw Spark- als Kafka-cluster bevat. Met beide clusters in één VNET heeft het Spark-cluster toegang tot afzonderlijke partities met gegevens in het Kafka-cluster, in plaats van over clusters of eindpunten te praten. Door toegang te bieden tot afzonderlijke partities van gegevens, verhoogt u de parallelle uitvoering die u hebt in de realtime verwerkingstaak, waardoor u betere doorvoer krijgt.

Scenario's voor het gebruik van Kafka met Spark

Er zijn veel realtime analysescenario's die profiteren van de realtime streaming die Apache Kafka en Spark inschakelen. Al deze scenario's hebben zowel een opnameonderdeel voor streaminggegevens, het Kafka-onderdeel, als een analytisch proces dat wordt uitgevoerd op de gegevens. Dit is het Spark-onderdeel.

Scenario's voor het gebruik van Kafka met Spark

  • realtime fraudedetectie om financiële transactiegegevens op te nemen en te vergelijken met historische patronen van frauduleus gedrag.
  • Vlootbeheer en verbonden autoscenario's waarin u IoT-apparaatgegevens opneemt en reageert wanneer bepaalde sensorgegevens, zoals kilometerstand, snelheid, locatie of temperatuurgegevens een drempelwaarde bereiken.
  • Clickstream-analyse van e-commerceoplossingen, om te analyseren hoe de plaatsing van producten impulsaankopen kan beïnvloeden en doorklikken.
  • Realtime patiëntbewaking om de bloeddruk en hartslaginformatie te bekijken en artsen op de hoogte te stellen wanneer een patiënt een kritieke status heeft.
  • Slimme rasteroplossingen die elektrisch gebruik bekijken en reageren wanneer de eisen veranderen.
  • Klantgedrag in winkels om erachter te komen welke aankopen worden gedaan op bepaalde tijdstippen van de dag om de voorraad te plannen en het personeel van de kassabaan te wijzigen.
  • IT-infrastructuur en netwerkbewaking om te kijken naar de beschikbaarheid en bandbreedte van de server en om verkeer omleiden wanneer dat nodig is.
  • realtime vraag- en voorraadbeheer om te kijken naar lage voorraadniveaus en vragen om opnieuw te bestellen of deze items opnieuw in te vullen.

Eenvoudige migratie van batch naar streaming

In veel gevallen beginnen deze scenario's on-premises of met batchverwerking van gegevens, maar naarmate oplossingen zich ontwikkelen en nodig hebben, wordt batchverwerking verplaatst naar streaming en worden on-premises toepassingen verplaatst naar de cloud. Zoals hierboven vermeld, is gestructureerd streamen van Spark uniek in de mogelijkheid om zowel batch- als streamingtaken te verwerken, waardoor het eenvoudiger is om batchverwerkingen die u uitvoert over te zetten in realtime-taken, omdat u van het ene naar het andere kunt overstappen, of ze tegelijkertijd kunt gebruiken met dezelfde toepassingen en frameworks.