Mi az Azure HDInsight alatt futó Apache Storm?What is Apache Storm on Azure HDInsight?

Az Apache Storm egy elosztott, nagy hibatűrésű, nyílt forráskódú számítási rendszer.Apache Storm is a distributed, fault-tolerant, open-source computation system. A Storm segítségével valós időben dolgozhat fel adatfolyamokat Apache Hadoop.You can use Storm to process streams of data in real time with Apache Hadoop. A Storm-megoldások emellett garantált adatfeldolgozást is biztosítanak, amely képes visszajátszani az elsőre sikeresen fel nem dolgozott adatokat.Storm solutions can also provide guaranteed processing of data, with the ability to replay data that was not successfully processed the first time.

Miért érdemes a HDInsight Apache Storm használható?Why use Apache Storm on HDInsight?

A HDInsight alatt futó Storm a következő szolgáltatásokat biztosítja:Storm on HDInsight provides the following features:

  • 99 %-os szolgáltatói szerződés (SLA) a Storm üzemidejével kapcsolatban: További információkért lásd a HDInsight szolgáltatói szerződésével kapcsolatos információkat ismertető dokumentumot.99% Service Level Agreement (SLA) on Storm uptime: For more information, see the SLA information for HDInsight document.

  • Könnyen testre szabható a szkriptek Storm-fürtön történő futtatásával a létrehozás során vagy után.Supports easy customization by running scripts against a Storm cluster during or after creation. További információ: HDInsight-fürtök testre szabása szkriptműveletekkel.For more information, see Customize HDInsight clusters using script action.

  • Megoldások létrehozása több nyelven: A Storm-összetevőket tetszőleges nyelven megírhatja, például Java, C# és Python nyelven.Create solutions in multiple languages: You can write Storm components in the language of your choice, such as Java, C#, and Python.

    • A Visual Studio és a HDInsight integrációjával biztosítja a C#-topológiák fejlesztését, felügyeletét és figyelését.Integrates Visual Studio with HDInsight for the development, management, and monitoring of C# topologies. További információ: C# Storm-topológiák fejlesztése a HDInsight Tools for Visual Studio szolgáltatással.For more information, see Develop C# Storm topologies with the HDInsight Tools for Visual Studio.

    • Támogatja a Trident Java-felületet.Supports the Trident Java interface. Olyan Storm-topológiákat hozhat létre, amelyek támogatják az üzenetek pontosan egyszeri feldolgozását, a tranzakciós adattároló-megőrzést és számos gyakori Stream Analytics-műveletet.You can create Storm topologies that support exactly once processing of messages, transactional datastore persistence, and a set of common stream analytics operations.

  • Dinamikus méretezés: A futó Storm-topológiák befolyásolása nélkül adhat hozzá vagy távolíthat el feldolgozó csomópontokat.Dynamic scaling: You can add or remove worker nodes with no impact to running Storm topologies.

    • A méretezési műveletek során hozzáadott új csomópontok használatához kapcsolja ki, majd kapcsolja be újra a futó topológiákat.You must deactivate and reactivate running topologies to take advantage of new nodes added through scaling operations.
  • Több Azure-szolgáltatások használata streamelési folyamatokat hozhat létre: A HDInsight alatt futó Storm integrálható az Event Hubs, az SQL Database, Azure Storage és Azure Data Lake Storage hasonló más Azure-szolgáltatásokat.Create streaming pipelines using multiple Azure services: Storm on HDInsight integrates with other Azure services such as Event Hubs, SQL Database, Azure Storage, and Azure Data Lake Storage.

    Egy példa megoldás, amely az Azure-szolgáltatásokkal integrálható, lásd: dolgozza fel az Event hubs-Eseményközpontokból a HDInsight-alapú Apache Storm.For an example solution that integrates with Azure services, see Process events from Event Hubs with Apache Storm on HDInsight.

A valós idejű elemzési megoldásaikhoz Apache Stormot használó vállalatok listája itt található: Az Apache Stormot használó vállalatok.For a list of companies that are using Apache Storm for their real-time analytics solutions, see Companies using Apache Storm.

A Storm használatának megkezdéséhez lásd Apache Storm on HDInsight – első lépések.To get started using Storm, see Get started with Apache Storm on HDInsight.

Hogyan működik az Apache StormHow does Apache Storm work

A Storm helyett topológiákat futtat a Apache Hadoop MapReduce feladatokat, akkor ismernie kell.Storm runs topologies instead of the Apache Hadoop MapReduce jobs that you might be familiar with. A Storm-topológiák több összetevőből állnak, amelyek egy irányított aciklikus gráfba (DAG) vannak rendezve.Storm topologies are composed of multiple components that are arranged in a directed acyclic graph (DAG). Az adatáramlás a gráf összetevői között zajlik.Data flows between the components in the graph. Minden összetevőbe egy vagy több stream érkezik be, valamint egy vagy több streamet sugároz.Each component consumes one or more data streams, and can optionally emit one or more streams. Az alábbi ábrán az összetevők közti adatfolyamok láthatók egy alapszintű szószámlálási topológiában:The following diagram illustrates how data flows between components in a basic word-count topology:

Példa az összetevők elrendezésére egy Storm-topológiában

  • A spout-összetevők adatokat importálnak a topológiába.Spout components bring data into a topology. Egy vagy több streamet sugároznak a topológiába.They emit one or more streams into the topology.

  • A bolt-összetevők a spout- vagy más bolt-összetevők által sugárzott streameket dolgozzák fel.Bolt components consume streams emitted from spouts or other bolts. A boltok opcionálisan streameket is sugározhatnak a topológiába.Bolts might optionally emit streams into the topology. A boltok felelősek az adatok külső szolgáltatásokba vagy tárolókba, például HDFS-, Kafka- vagy HBase-tárolókba történő kiírásáért.Bolts are also responsible for writing data to external services or storage, such as HDFS, Kafka, or HBase.

MegbízhatóságReliability

Az Apache Storm garantálja, hogy mindig minden bejövő üzenetet feldolgoz, még akkor is, ha az adatok elemzése több száz csomópont között oszlik meg.Apache Storm guarantees that each incoming message is always fully processed, even when the data analysis is spread over hundreds of nodes.

A Nimbus csomópont az Apache Hadoop JobTracker hasonló funkcionalitást biztosít, és rendeli hozzá a feladatokat a fürt más csomópontjaira Apache ZooKeeper.The Nimbus node provides functionality similar to the Apache Hadoop JobTracker, and it assigns tasks to other nodes in a cluster through Apache ZooKeeper. A Zookeeper-csomópontok koordinációt biztosítanak a fürt számára, és elősegítik a kommunikációt a Nimbus és a feldolgozó csomópontokon futó Supervisor folyamat között.Zookeeper nodes provide coordination for a cluster and facilitate communication between Nimbus and the Supervisor process on the worker nodes. Ha egy feldolgozó csomópont leáll, arról a Nimbus csomópont értesítést kap, és kiosztja a feladatot és a kapcsolódó adatokat egy másik csomópontnak.If one processing node goes down, the Nimbus node is informed, and it assigns the task and associated data to another node.

Az alapértelmezett konfiguráció szerint az Apache Storm-fürtök csak egyetlen Nimbus csomóponttal rendelkeznek.The default configuration for Apache Storm clusters is to have only one Nimbus node. A HDInsight alatt futó Storm két Nimbus csomóponttal rendelkezik.Storm on HDInsight provides two Nimbus nodes. Ha az elsődleges csomópont meghibásodik, a Storm-fürt átvált a másodlagos csomópontra, amíg az elsődleges csomópont helyreállítása be nem következik.If the primary node fails, the Storm cluster switches to the secondary node while the primary node is recovered. A következő ábra a Storm on HDInsight feladatfolyam-konfigurációját mutatja be:The following diagram illustrates the task flow configuration for Storm on HDInsight:

Diagram: Nimbus, Zookeeper és Supervisor

Könnyű létrehozásEase of creation

Az új Storm-fürtök percek alatt létrehozhatók a HDInsightban.You can create a new Storm cluster on HDInsight in minutes. További információkat a Storm-fürtök létrehozásáról a HDInsight alatt futó Storm bemutatásában talál.For more information on creating a Storm cluster, see Get started with Storm on HDInsight.

Könnyű használatEase of use

  • Secure Shell (SSH-) kapcsolatok: Elérheti a Storm-fürt átjárócsomópontjaiból az interneten keresztül az SSH használatával.Secure Shell (SSH) connectivity: You can access the head nodes of your Storm cluster over the Internet by using SSH. Az SSH használatával közvetlenül futtathat parancsokat a fürtön.You can run commands directly on your cluster by using SSH.

    További információ: Az SSH használata HDInsighttal.For more information, see Use SSH with HDInsight.

  • Webes kapcsolatok: Az összes HDInsight-fürtök az Ambari webes felhasználói Felületet biztosítanak.Web connectivity: All HDInsight clusters provide the Ambari web UI. Az Ambari webes felülettel egyszerűen figyelheti, konfigurálhatja és kezelheti a fürtön futó szolgáltatásokat.You can easily monitor, configure, and manage services on your cluster by using the Ambari web UI. A Storm felhasználói felülete a Storm-fürtökön is elérhető.Storm clusters also provide the Storm UI. A Storm felhasználói felülettel böngészőből figyelhetők és kezelhetők a futó Storm-topológiák.You can monitor and manage running Storm topologies from your browser by using the Storm UI.

    További információkért lásd: a kezelése HDInsight az Apache Ambari webes kezelőfelületen és figyelése és kezelése az Apache Storm kezelői felülettel dokumentumokat.For more information, see the Manage HDInsight using the Apache Ambari Web UI and Monitor and manage using the Apache Storm UI documents.

  • Az Azure PowerShell és az Azure klasszikus parancssori felület: PowerShell és a klasszikus parancssori felület egyaránt biztosítanak olyan parancssori segédprogramok, használhatja a HDInsight és más Azure-szolgáltatásokhoz az ügyfél rendszerből.Azure PowerShell and Azure Classic CLI: PowerShell and classic CLI both provide command-line utilities that you can use from your client system to work with HDInsight and other Azure services.

  • Visual Studio-integráció: Az Azure Data Lake Tools for Visual Studio projektsablonokat létrehozása C# Storm-topológiák az SCP.NET keretrendszer használatával.Visual Studio integration: Azure Data Lake Tools for Visual Studio include project templates for creating C# Storm topologies by using the SCP.NET framework. A Data Lake Tools emellett megoldások üzembe helyezéséhez, figyeléséhez és felügyeletéhez is tartalmaz eszközöket a HDInsight alatt futó Stormhoz.Data Lake Tools also provide tools to deploy, monitor, and manage solutions with Storm on HDInsight.

    További információ: C# Storm-topológiák fejlesztése a HDInsight Tools for Visual Studio szolgáltatással.For more information, see Develop C# Storm topologies with the HDInsight Tools for Visual Studio.

Integráció más Azure-szolgáltatásokkalIntegration with other Azure services

TámogatásSupport

A HDInsight alatt futó Stormhoz teljes körű, vállalati szintű, folyamatos támogatás áll rendelkezésre.Storm on HDInsight comes with full enterprise-level continuous support. A HDInsight alatt futó Storm emellett szolgáltatásiszint-szerződésben garantált 99,9%-os elérhetőséggel rendelkezik.Storm on HDInsight also has an SLA of 99.9 percent. Ennek értelmében a Microsoft garantálja, hogy az egyes Storm-fürtök az idő legalább 99,9%-ában elérhetők lesznek kívülről.That means Microsoft guarantees that a Storm cluster has external connectivity at least 99.9 percent of the time.

További információk: Azure-ügyfélszolgálat.For more information, see Azure support.

Apache Storm használati esetekApache Storm use cases

Az alábbiakban néhány gyakori forgatókönyvet ismertetünk, amelyek esetén a HDInsight alatt futó Storm használható:The following are some common scenarios for which you might use Storm on HDInsight:

  • Eszközök internetes hálózata (IoT)Internet of Things (IoT)
  • Csalások észleléseFraud detection
  • Közösségi hálók adatainak elemzéseSocial analytics
  • Kinyerés, átalakítás és betöltés (ETL)Extraction, transformation, and loading (ETL)
  • HálózatfigyelésNetwork monitoring
  • KeresésSearch
  • MobilmarketingMobile engagement

További információ valós felhasználási forgatókönyvekről: a vállalatok hogyan használják az Apache Storm dokumentumot.For information about real-world scenarios, see the How companies are using Apache Storm document.

FejlesztésDevelopment

A Data Lake Tools for Visual Studio használatával a .NET-fejlesztők C# nyelven tervezhetnek és valósíthatnak meg topológiákat..NET developers can design and implement topologies in C# by using Data Lake Tools for Visual Studio. Létrehozhatók Java- és C#-összetevőket egyaránt használó hibrid topológiák is.You can also create hybrid topologies that use Java and C# components.

További információk: C#-topológiák fejlesztése HDInsight alatt futó Apache Stormra a Visual Studio használatávalFor more information, see Develop C# topologies for Apache Storm on HDInsight using Visual Studio.

Java-megoldásokat is fejleszthet tetszőleges IDE használatával.You can also develop Java solutions by using the IDE of your choice. További információkért lásd: Java-topológiák fejlesztése HDInsight az Apache stormmal.For more information, see Develop Java topologies for Apache Storm on HDInsight.

A Python is használható Storm-összetevők fejlesztéséhez.Python can also be used to develop Storm components. További információkért lásd: Apache Storm-topológiák fejlesztése a HDInsight pythonnal.For more information, see Develop Apache Storm topologies using Python on HDInsight.

Gyakori fejlesztési mintákCommon development patterns

Garantált üzenetfeldolgozásGuaranteed message processing

Az Apache Storm különböző szinteken biztosít garantált üzenetfeldolgozást.Apache Storm can provide different levels of guaranteed message processing. Például egy alapszintű Storm-alkalmazás tud garantálni, legalább egyszeri feldolgozást, és Trident garantálható a pontosan egyszeri feldolgozását.For example, a basic Storm application can guarantee at-least-once processing, and Trident can guarantee exactly once processing.

További információk: Adatfeldolgozási garancia az apache.org webhelyen.For more information, see Guarantees on data processing at apache.org.

IBasicBoltIBasicBolt

A minta egy bemeneti rekord olvasása, nulla vagy több rekord kibocsátó és a bemeneti rekord azonnal az execute metódus végén majd bosszankodnak szokás.The pattern of reading an input tuple, emitting zero or more tuples, and then acknowledging the input tuple immediately at the end of the execute method is common. A Storm lehetővé teszi ennek a mintának az automatizálását az IBasicBolt felület segítségével.Storm provides the IBasicBolt interface to automate this pattern.

IllesztésekJoins

Az adatstreamek alkalmazások közötti csatlakoztatásának különböző módjai.How data streams are joined varies between applications. Például összeillesztheti több stream minden rekordját egy új streammé, vagy összeilleszthet csupán rekordkötegeket egy bizonyos ablak alapján.For example, you can join each tuple from multiple streams into one new stream, or you can join only batches of tuples for a specific window. Az illesztés mindkét módszer esetén a fieldsGrouping használatával történik.Either way, joining can be accomplished by using fieldsGrouping. Ez egy mód annak definiálására, hogyan legyenek átirányítva a rekordok a boltokhoz.Field grouping is a way of defining how tuples are routed to bolts.

A következő Java-példában az „1”, „2” és „3” jelű összetevőktől eredő rekordok a fieldsGrouping használatával vannak átirányítva a MyJoiner bolthoz:In the following Java example, fieldsGrouping is used to route tuples that originate from components "1", "2", and "3" to the 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"));

KötegekBatches

A Storm rendelkezik egy belső időzítő mechanizmussal, az úgynevezett „tick tuple” rekordórajellel.Apache Storm provides an internal timing mechanism known as a "tick tuple." Ennek segítségével beállíthatja, hogy a topológia milyen gyakran bocsásson ki egy-egy rekordórajelet.You can set how often a tick tuple is emitted in your topology.

Példa egy rekordórajel C#-összetevőből való használatára: PartialBoltCount.cs.For an example of using a tick tuple from a C# component, see PartialBoltCount.cs.

GyorsítótárakCaches

A memóriában történő gyorsítótárazás gyakran használatos a feldolgozást felgyorsító mechanizmusként, mivel a memóriában tartja a gyakran használt objektumokat.In-memory caching is often used as a mechanism for speeding up processing because it keeps frequently used assets in memory. Mivel a topológiák több csomópont, és az egyes csomópontokon belül is több folyamat között oszlanak meg, érdemes megfontolni a fieldsGrouping használatát.Because a topology is distributed across multiple nodes, and multiple processes within each node, you should consider using fieldsGrouping. A fieldsGrouping használata biztosítja, hogy a gyorsítótárban való kereséshez használt mezőket tartalmazó rekordok mindig ugyanahhoz a folyamathoz legyenek irányítva.Use fieldsGrouping to ensure that tuples containing the fields that are used for cache lookup are always routed to the same process. Ezzel a csoportosítási funkcióval elkerülhető, hogy a különböző folyamatok ismétlődő gyorsítótár-bejegyzéseket hozzanak létre.This grouping functionality avoids duplication of cache entries across processes.

A „legfelső N” számú elem streameléseStream "top N"

Ha egy topológia az első N elem értékének kiszámításától függ, az első N értéket párhuzamosan számítsa ki.When your topology depends on calculating a top N value, calculate the top N value in parallel. Ezután összesítse a számítások eredményét egy globális értékben.Then merge the output from those calculations into a global value. Ezt a műveletet a fieldsGrouping használatával, a mezők párhuzamos feldolgozáshoz való továbbításával hajthatja végre.This operation can be done by using fieldsGrouping to route by field for parallel processing. Ezt követően továbbíthat egy bolthoz, amely globálisan meghatározza a legfelső N számú elem értékét.Then you can route to a bolt that globally determines the top N value.

Példa az első N elem értékének kiszámítására: RollingTopWords példa.For an example of calculating a top N value, see the RollingTopWords example.

NaplózásLogging

Használja a Storm Apache Log4j 2 naplózza az adatokat.Storm uses Apache Log4j 2 to log information. Alapértelmezés szerint nagy mennyiségű adat rögzítése történik, aminek az áttekintése nehézségekkel járhat.By default, a large amount of data is logged, and it can be difficult to sort through the information. A Storm-topológia részeként hozzáadhat egy naplózáskonfigurációs fájlt, amely a naplózás működését vezérli.You can include a logging configuration file as part of your Storm topology to control logging behavior.

A naplózás konfigurálását bemutató példatopológiát a HDInsight alatt futó Stormra vonatkozó Java-alapú WordCount példában tekintheti meg.For an example topology that demonstrates how to configure logging, see Java-based WordCount example for Storm on HDInsight.

További lépésekNext steps

További információ a HDInsight Apache Storm valós idejű elemzési megoldásairól:Learn more about real-time analytics solutions with Apache Storm on HDInsight: