Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
181 lines (104 sloc) 15.6 KB
title description author ms.reviewer keywords ms.service ms.custom ms.topic ms.date ms.author ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Wat is Apache Storm - Azure HDInsight
Met Apache Storm kunt u gegevensstromen in realtime verwerken. Met Azure HDInsight kunt u eenvoudig Storm-clusters maken in de Azure-cloud. Met Visual Studio kunt u Storm-oplossingen schrijven in C# en deze vervolgens implementeren in uw HDInsight Storm-clusters.
hrasheed-msft
jasonh
apache storm use cases,storm cluster,wat is apache storm
hdinsight
hdinsightactive,hdiseo17may2017
overview
06/12/2019
hrasheed
0540d8a83a8dc1da9bc763bce0b30463889cfe90
083aa7cc8fc958fc75365462aed542f1b5409623
MT
nl-NL
09/11/2019
70915046

Wat is Apache Storm in Azure HDInsight?

Apache Storm is een gedistribueerd, fouttolerant en open-source computingsysteem. U kunt Storm gebruiken om gegevens stromen in realtime te verwerken met Apache Hadoop. Dankzij de mogelijkheid om gegevens die de eerste keer niet zijn verwerkt, opnieuw te verwerken, bieden Storm-oplossingen u de garantie dat de gegevens worden verwerkt.

Waarom Apache Storm op HDInsight gebruiken?

Storm op HDInsight biedt de volgende functies:

  • 99% Service Level Agreement (Sla) op Storm-uptime: Zie SLA-informatie voor HDInsight voor meer informatie.

  • Ondersteunt de mogelijkheid om eenvoudig aanpassingen te implementeren door tijdens of na het maken van een Storm-cluster scripts voor dat cluster uit te voeren. Zie HDInsight-clusters aanpassen met scriptacties voor meer informatie.

  • Oplossingen maken in meerdere talen: U kunt Storm-onderdelen schrijven in de taal van uw keuze, bijvoorbeeld in Java, C# of Python.

    • Integreert Visual Studio met HDInsight voor het ontwikkelen, beheren en controleren van C#-topologieën. Zie C# Storm-topologieën met de hulpprogramma's van HDInsight voor Visual Studio voor meer informatie.

    • Biedt ondersteuning voor de Trident Java-interface. U kunt Storm-topologieën maken die ondersteuning bieden voor een eenmalige verwerking van berichten, transactionele DataStore-persistentie en een aantal algemene Stream Analytics-bewerkingen.

  • Dynamisch schalen: U kunt werkknooppunten toevoegen of verwijderen zonder de actieve Storm-topologieën te beïnvloeden.

    • U moet de lopende topologieën deactiveren en reactiveren om te profiteren van de nieuwe knooppunten die zijn toegevoegd via vergroten/verkleinen.
  • Streaming-pijp lijnen maken met meerdere Azure-Services: Storm op HDInsight kan worden geïntegreerd met andere Azure-Services, zoals Event Hubs, SQL Database, Azure Storage en Azure Data Lake Storage.

    Zie gebeurtenissen van Event hubs verwerken met Apache Storm op HDInsightvoor een voorbeeld oplossing die kan worden geïntegreerd met Azure-Services.

Zie deze Engelstalige site voor een lijst met bedrijven die Apache Storm gebruiken voor hun oplossingen voor realtime analyse.

Zie een Apache Storm topologie maken en bewaken in azure HDInsightom aan de slag te gaan met storm.

Hoe werkt Apache Storm

Storm voert topologieën uit in plaats van de Apache Hadoop MapReduce -taken die u mogelijk kent. Storm-topologieën bestaan uit meerdere onderdelen die zijn gerangschikt in een Directed Acyclic Graph (DAG). Gegevens stromen tussen de onderdelen in de grafiek. Elk onderdeel verbruikt een of meer gegevensstromen en kan eventueel een of meer stromen genereren. Het volgende diagram toont hoe de gegevens stromen tussen de onderdelen van een eenvoudige topologie voor het tellen van woorden:

Voorbeeld van hoe onderdelen zijn gerangschikt in een Storm-topologie

  • Via Spout-onderdelen worden gegevens overgebracht naar een topologie. Deze onderdelen introduceren een of meer stromen in de topologie.

  • Bolt-onderdelen verwerken stromen die afkomstig zijn van spouts of andere bolts. Bolts kunnen eventueel nieuwe stromen in de topologie introduceren. Bolts zijn ook verantwoordelijk voor het wegschrijven van gegevens naar externe services of opslag, zoals HDFS, Kafka of HBase.

Betrouwbaarheid

Apache Storm zorgt ervoor dat elk binnenkomend bericht altijd volledig wordt verwerkt, zelfs wanneer de gegevensanalyse is verspreid over honderden knooppunten.

Het Nimbus-knoop punt biedt dezelfde functionaliteit als de Apache Hadoop JobTracker en wijst taken toe aan andere knoop punten in een cluster via Apache ZooKeeper. Zookeeper-knooppunten geven een cluster coördinatiemogelijkheden en faciliteren de communicatie tussen Nimbus en het Supervisor-proces op de werkknooppunten. Als een verwerkingsknooppunt wordt uitgeschakeld, wordt het Nimbus-knooppunt hiervan op de hoogte gesteld en worden de taak en de bijbehorende gegevens toegewezen aan een ander knooppunt.

Apache Storm-clusters worden standaard geconfigureerd met slechts één Nimbus-knooppunt. Storm in HDInsight ondersteunt twee Nimbus-knooppunten. Als het primaire knooppunt uitvalt, schakelt het Storm-cluster over naar het secundaire knooppunt en wordt het primaire knooppunt hersteld. Het volgende diagram illustreert de taakstroomconfiguratie voor Storm op HDInsight:

Diagram van nimbus, zookeeper en supervisor

Eenvoudig te maken

U kunt in enkele minuten een nieuw Storm-cluster op HDInsight maken. Zie Apache Hadoop clusters maken met behulp van de Azure Portalvoor meer informatie over het maken van een storm-cluster.

Gebruiksgemak

  • SSH-connectiviteit (Secure Shell) : Met SSH kunt u via internet toegang krijgen tot de hoofd knooppunten van uw Storm-cluster. U kunt opdrachten rechtstreeks op het cluster uitvoeren met behulp van SSH.

    Zie SSH gebruiken met HDInsight voor meer informatie.

  • Webconnectiviteit: Alle HDInsight-clusters bieden de Ambari-webgebruikersinterface. Met de Ambare-webgebruikersinterface kunt u eenvoudig services op het cluster controleren, configureren en beheren. Storm-clusters bieden ook de Storm-gebruikersinterface. Met behulp van de Storm-gebruikersinterface kunt u actieve Storm-topologieën controleren en beheren vanuit de browser.

    Zie HDInsight beheren met de Web-UI van Apache Ambari en controleren en beheren met behulp van de Apache Storm UI -documenten voor meer informatie.

  • Azure PowerShell en klassieke Azure-cli: Power shell en klassieke CLI bieden beide opdracht regel Programma's die u vanuit uw client systeem kunt gebruiken om te werken met HDInsight en andere Azure-Services.

  • Visual Studio-integratie: Azure Data Lake-Hulpprogram Ma's voor Visual Studio bevatten project sjablonen C# voor het maken van Storm-topologieën met behulp van het SCP.NET-Framework. Data Lake Tools biedt ook hulpprogramma's voor het implementeren, bewaken en beheren van oplossingen met Storm op HDInsight.

    Zie C# Storm-topologieën met de hulpprogramma's van HDInsight voor Visual Studio voor meer informatie.

Integratie met andere Azure-services

Ondersteuning

Storm op HDInsight wordt geleverd met volledige en onafgebroken ondersteuning op ondernemingsniveau. Storm op HDInsight beschikt eveneens over een SLA van 99,9 procent. Dit betekent dat Microsoft garandeert dat een Storm-cluster minimaal 99,9 procent van de tijd externe verbinding heeft.

Zie Ondersteuning van Azure voor meer informatie.

Use cases van Apache Storm

Hier volgen enkele veelvoorkomende scenario's waarvoor u Storm in HDInsight zou kunnen gebruiken:

  • Internet der dingen (IoT)
  • Fraudedetectie
  • Sociale analyses
  • Extractie, transformatie en laden (ETL)
  • Netwerkbewaking
  • Search
  • Mobile Engagement

Zie hoe bedrijven Apache Storm document gebruiken voor informatie over praktijk scenario's.

Ontwikkeling

Met hulp van Data Lake-tools voor Visual Studio kunnen .NET-ontwikkelaars topologieën ontwerpen en implementeren voor Visual Studio. U kunt ook hybride topologieën maken die gebruikmaken van Java- en C#-onderdelen.

Zie C#-topologieën met Visual Studio ontwikkelen voor Apache Storm op HDInsight voor meer informatie.

U kunt ook Java-oplossingen ontwikkelen met behulp van de IDE van uw keuze. Zie Java-topologieën ontwikkelen voor Apache Storm op HDInsightvoor meer informatie.

Python kan ook worden gebruikt voor het ontwikkelen van Storm-onderdelen. Zie Apache Storm topologieën ontwikkelen met behulp van python op HDInsightvoor meer informatie.

Algemene ontwikkelingspatronen

Gegarandeerde berichtverwerking

Apache Storm kan verschillende niveaus van gegarandeerde berichtverwerking bieden. Een eenvoudige Storm-toepassing kan bijvoorbeeld een verwerkings snelheid van ten minste één keer garanderen en Trident kan gegarandeerd precies één keer worden verwerkt.

Zie Guarantees on data processing (Garanties met betrekking tot de gegevensverwerking) op apache.org voor meer informatie.

IBasicBolt

Het patroon voor het lezen van een invoer-tuple, het verzenden van nul of meer Tuples en het bevestigen van de invoer tuple onmiddellijk aan het einde van de methode Execute is gebruikelijk. Storm biedt de IBasicBolt-interface voor het automatiseren van dit patroon.

Samenvoegingen

Hoe gegevensstromen worden gekoppeld, varieert per toepassing. U kunt bijvoorbeeld elke tuple uit meerdere streams samenvoegen in één nieuwe stream, of u kunt alleen batches tuples voor een specifiek venster samenvoegen. In beide gevallen kunt u hiervoor fieldsGrouping gebruiken. Veldgroepering is een manier om te definiëren hoe tuples worden gerouteerd naar bolts.

In het volgende Java-voorbeeld wordt fieldsGrouping gebruikt om tuples die afkomstig zijn uit de onderdelen 1, 2 en 3, te routeren naar de MyJoiner-bolt:

builder.setBolt("join", new MyJoiner(), parallelism) .fieldsGrouping("1", new Fields("joinfield1", "joinfield2")) .fieldsGrouping("2", new Fields("joinfield1", "joinfield2")) .fieldsGrouping("3", new Fields("joinfield1", "joinfield2"));

Batches

Apache Storm biedt een intern timingmechanisme dat bekend staat als een 'tick tuple'. U kunt instellen hoe vaak in uw topologie een tick tuple wordt verzonden.

Zie PartialBoltCount.cs voor een voorbeeld van het gebruik van een tick tuple uit een C#-onderdeel.

Caches

In-memory caching wordt vaak gebruikt als mechanisme om de verwerking te versnellen, omdat de veelgebruikte assets in het geheugen blijven staan. Omdat een topologie wordt verdeeld over meerdere knooppunten en meerdere processen binnen elk knooppunt, is het goed om het gebruik van fieldsGrouping te overwegen. Gebruik fieldsGrouping om ervoor te zorgen dat tuples met velden die worden gebruikt voor het opzoeken van de cache, altijd naar hetzelfde proces worden gerouteerd. Met deze groeperingsfunctionaliteit voorkomt u dubbele cachevermeldingen voor verschillende processen.

'Top N' van stromen

Wanneer uw topologie afhankelijk is van de berekening van de waarde van een 'top N', moet u die waarde in parallel berekenen. Vervolgens moet u de uitvoer van die berekeningen samenvoegen tot een globale waarde. Dit kan door met fieldsGrouping op veld te routeren voor parallelle verwerking. Vervolgens kunt u de uitvoer doorsturen naar een bolt die globaal de top N-waarde bepaalt.

Zie het RollingTopWords-voorbeeld voor een voorbeeld van een berekening van een top N-waarde.

Logboekregistratie

Storm gebruikt Apache Log4j 2 om informatie te registreren. Standaard wordt een grote hoeveelheid gegevens geregistreerd en kan het lastig zijn om de informatie te doorzoeken. U kunt een configuratiebestand voor logboekregistratie opnemen als onderdeel van uw Storm-topologie om de werking van de logboekregistratie te bepalen.

Zie het voorbeeld van een op Java gebaseerde woordentelling voor Storm op HDInsight, voor een voorbeeldtopologie die aantoont hoe u de logboekregistratie moet configureren.

Volgende stappen

Meer informatie over real-time analyse oplossingen met Apache Storm op HDInsight:

You can’t perform that action at this time.