Het gedistribueerde rekensysteem Apache Storm 2.0 is beschikbaar.

Zag het licht belangrijke release van het systeem voor gedistribueerde gebeurtenisverwerking Apache Storm 2.0, opmerkelijk vanwege de overgang naar een nieuwe architectuur, geĆÆmplementeerd in de programmeertaal Java, in plaats van de eerder gebruikte programmeertaal Clojure.

Het project stelt gebruikers in staat om gegarandeerde verwerking van verschillende gebeurtenissen in realtime te organiseren. Zo kan Storm worden gebruikt voor het analyseren van datastromen in realtime, het uitvoeren van taken voor machine learning, het organiseren van continue berekeningen, het implementeren van RPC, ETL, enz. Het systeem ondersteunt clustering, het creƫren van fouttolerante configuraties, de modus van gegarandeerde gegevensverwerking en heeft een hoge prestaties, voldoende om meer dan een miljoen verzoeken per seconde op een enkele cluster-knooppunt te verwerken.

Integratie met verschillende queue-verwerkingssystemen en database-technologieën wordt ondersteund. De architectuur van Storm stelt het in staat om ongestructureerde, continu geüpdatete datastromen te verwerken met behulp van willekeurige complexe verwerkers met de mogelijkheid tot partitionering tussen verschillende stadia van berekeningen. Het project werd overgedragen aan de Apache-gemeenschap na de overname van Twitter door BackType, dat het framework oorspronkelijk had ontwikkeld. In de praktijk werd Storm gebruikt bij BackType voor het analyseren van gebeurtenissen in microblogs door nieuwe tweets en de daarin gebruikte links on-the-fly te matchen (bijvoorbeeld het werd geëvalueerd hoe externe links of aankondigingen die op Twitter werden geplaatst, door andere gebruikers werden gere-tweet).

De functionaliteit van Storm wordt vergeleken met het Hadoop-platform, waarbij het belangrijkste verschil is dat de gegevens niet in een opslag zijn geplaatst, maar van buitenaf komen en in realtime worden verwerkt. In Storm is er geen ingebouwde laag voor het organiseren van opslag en de analytische query wordt toegepast op de binnenkomende gegevens totdat deze wordt geannuleerd (terwijl in Hadoop eindige tijdsbepalende MapReduce-taken worden gebruikt, wordt in Storm het idee van continu uitgevoerde 'topologieƫn' toegepast). De uitvoering van verwerkers kan over meerdere servers worden verdeeld - Storm paraleliseert automatisch de verwerking van stromen op verschillende knooppunten van de cluster.

Aanvankelijk was het systeem geschreven in de Clojure-taal en draait het binnen de JVM-virtuele machine. Bij de Apache Foundation is een initiatief gestart om Storm over te zetten naar een nieuwe kern, geschreven in Java, waarvan de resultaten worden aangeboden in de Apache Storm 2.0-release. Alle basiscomponenten van het platform zijn herschreven in Java. De ondersteuning voor het schrijven van handlers in Clojure is behouden, maar wordt nu aangeboden in de vorm van bindings. Voor het draaien van Storm 2.0.0 is Java 8 vereist. Het model voor multithreading is volledig herzien, wat heeft geleid tot een significante prestatieverbetering (voor sommige topologieƫn zijn de latenties met 50-80% verminderd).

Het gedistribueerde rekensysteem Apache Storm 2.0 is beschikbaar.

In de nieuwe versie is ook een nieuw getypeerd Streams-API geĆÆntroduceerd, waarmee handlers kunnen worden gedefinieerd met behulp van operaties in functionele programmeerstijl. De nieuwe API is gebouwd bovenop de standaard basis-API en ondersteunt automatische combinaties van operaties om hun verwerking te optimaliseren. In de Windowing API voor venstermodules is ondersteuning toegevoegd voor het opslaan en herstellen van status in de backend.

In de planner voor het starten van handlers is ondersteuning toegevoegd voor het meenemen van extra resources bij het nemen van beslissingen, die niet alleen beperkt zijn tot
CPU en geheugen, maar ook netwerkinstellingen en GPU's omvatten. Er zijn een groot aantal verbeteringen doorgevoerd met betrekking tot de integratie met het Kafka. Het toegangsbeheersysteem is uitgebreid, waarbij de mogelijkheid is toegevoegd om beheergroepen te maken en tokens te delegeren. Er zijn verbeteringen aangebracht in de ondersteuning van SQL en metrics. In de admin-interface zijn nieuwe commando's toegevoegd voor het debuggen van de status van de cluster.

Toepassingsgebieden van Storm:

  • ReĆ«le tijdsverwerking van nieuwe data streams of database-updates;
  • Continue berekeningen: Storm kan continue queries uitvoeren en continue streams verwerken, waarbij de verwerkingresultaten in real-time aan de klant worden verzonden.
  • Gedistribueerde Remote Procedure Call (RPC): Storm kan worden gebruikt om parallelisme te bieden voor de uitvoering van resource-intensieve aanvragen. Een taak (ā€˜topologie’) in Storm is een functie die over verschillende knooppunten is verspreid en wacht op berichten die moeten worden verwerkt. Na ontvangst van een bericht verwerkt de functie het in een lokale context en geeft het resultaat terug. Een voorbeeld van gedistribueerde RPC is parallelle verwerking van zoekopdrachten of het uitvoeren van bewerkingen op een grote set sets.

Kenmerken van Storm:

  • Eenvoudig programmeermodel dat de verwerking van gegevens in real-time aanzienlijk vereenvoudigt;
  • Ondersteuning voor alle programmeertalen. Er zijn modules voor Java, Ruby en Python; de aanpassing voor andere talen is eenvoudig dankzij een zeer eenvoudig communicatieprotocol, waarvoor ongeveer 100 regels code nodig zijn;
  • Fouttolerantie: om een taak voor gegevensverwerking uit te voeren, moet een jar-bestand met de code worden gemaakt. Storm verspreidt dit jar-bestand automatisch over de knooppunten van het cluster, sluit de bijbehorende handlers aan en organiseert monitoring. Na voltooiing van de taak wordt de code automatisch uitgeschakeld op alle knooppunten;
  • Horizontale schaalbaarheid. Alle berekeningen worden parallel uitgevoerd; wanneer de belasting toeneemt, is het voldoende om eenvoudig nieuwe knooppunten aan het cluster toe te voegen;
  • Betrouwbaarheid. Storm garandeert dat elk ontvangen bericht volledig wordt verwerkt, minstens ƩƩn keer. Een bericht wordt slechts ƩƩn keer verwerkt indien er geen fouten optreden tijdens het passeren van alle handlers; als er problemen optreden, worden de mislukte verwerkingspogingen herhaald.
  • Snelheid. De Storm-code is geschreven met het oog op hoge prestaties en maakt gebruik van een systeem voor snelle asynchrone berichtgeving. ZeroMQ.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster