Apache Storm 2.0-fördelat datorsystem Àr tillgÀngligt

Har sett dagens ljus betydande release av distribuerad hÀndelsehanteringssystem Apache Storm 2.0, anmÀrkningsvÀrd övergÄng till en ny arkitektur, implementerad i Java istÀllet för det tidigare anvÀnda sprÄket Clojure.

Projektet möjliggör garanterad bearbetning av olika hÀndelser i realtid. Till exempel kan Storm anvÀndas för att analysera datastreams i realtid, utföra uppgifter för maskininlÀrning, organisera kontinuerliga berÀkningar, implementera RPC, ETL osv. Systemet stöder klusterhantering, skapande av felresistenta konfigurationer, lÀget för garanterad databehandling och har hög prestanda, tillrÀcklig för att bearbeta mer Àn en miljon begÀrningar per sekund pÄ en nod i klustret.

Det stöder integration med olika köhanteringssystem och databasteknologier. Storm-arkitekturen förutsÀtter mottagande och behandling av ostrukturerade, stÀndigt uppdaterade datastreams med anvÀndning av valfria komplexa bearbetare med möjlighet till partitionering mellan olika berÀkningssteg. Projektet överlÀmnades till Apache-gemenskapen efter att Twitter hade förvÀrvat företaget BackType, som ursprungligen utvecklade ramverket. I praktiken anvÀndes Storm pÄ BackType för att analysera reflektioner av hÀndelser i mikrobloggar genom att i realtid matcha nya tweets och lÀnkar som anvÀndes i dem (t.ex. bedömdes hur externa lÀnkar eller Twitter-annonsinlÀgg ÄterutsÀndes av andra deltagare).

Storms funktionalitet jĂ€mförs med Hadoop-plattformen, dĂ€r den nyckelfulla skillnaden Ă€r att data inte lagras utan kommer utifrĂ„n och behandlas i realtid. I Storm finns det ingen inbyggd mellanlager för lagring, och analytiska förfrĂ„gningar börjar tillĂ€mpas pĂ„ inkommande data tills de avbryts (medan Hadoop anvĂ€nder tidsbestĂ€md MapReduce-arbetsuppgifter, tillĂ€mpas i Storm idĂ©n om stĂ€ndigt körande 'topologier'). Behandlarna kan distribueras över flera servrar — Storm parallelliserar automatiskt arbetet med strömmarna pĂ„ olika klusterknutar.

Systemen skrevs ursprungligen i Clojure och körs inuti JVM. Inom Apache har en initiativ startats för att översÀtta Storm till en ny kÀrna, skriven i Java, vars resultat presenteras i Apache Storm 2.0. Alla grundkomponenter av plattformen har skrivits om i Java. Stödet för att skriva handlare i Clojure har bevarats, men erbjuds nu i form av bindningar. För att köra Storm 2.0.0 krÀvs Java 8. Modellen för flertrÄdig bearbetning har helt omarbetats, vilket möjliggjorde att uppnÄ en betydande prestandaökning (för vissa topologier har latensen minskat med 50-80%).

Apache Storm 2.0-fördelat datorsystem Àr tillgÀngligt

I den nya versionen introduceras Àven en typad API för Streams, som tillÄter specificering av handlare med hjÀlp av funktionella programmeringsoperationer. Den nya API:n Àr implementerad ovanpÄ den vanliga bas-API:n och stöder automatisk sammanslagning av operationer för att optimera behandlingen. I API:n Windowing för fönsteroperationer har stöd för att spara och ÄterstÀlla tillstÄnd i backend lagts till.

Till schemalÀggaren för att starta handlare har stöd för att ta hÀnsyn till extra resurser vid beslut som inte begrÀnsar sig till
CPU och minne, sĂ„som nĂ€tverksparametrar och GPU. MĂ„nga förbĂ€ttringar har gjorts för att sĂ€kerstĂ€lla integrering med plattformen Kafka. Åtkomstkontrollsystemet har utvidgats, dĂ€r möjligheten att skapa administratörsgrupper och delegera tokens har lagts till. FörbĂ€ttringar avseende SQL och metrik har lagts till. I administrationsgrĂ€nssnittet har nya kommandon lagts till för att felsöka klusterstatus.

AnvÀndningsomrÄden för Storm:

  • Bearbetning av strömmar av ny data eller databasuppdateringar i realtid;
  • Kontinuerlig berĂ€kning: Storm kan utföra kontinuerliga förfrĂ„gningar och bearbeta kontinuerliga strömmar, vilket gör att resultaten av behandlingen skickas till kunden i realtid.
  • Distribuerad fjĂ€rrprocedur-anrop (RPC): Storm kan anvĂ€ndas för att möjliggöra parallell exekvering av resurskrĂ€vande förfrĂ„gningar. En uppgift ("topologi") i Storm representerar en distribuerad funktion över noder som vĂ€ntar pĂ„ att ta emot meddelanden som ska bearbetas. Efter att ha mottagit ett meddelande bearbetar funktionen det i ett lokalt sammanhang och returnerar resultatet. Ett exempel pĂ„ anvĂ€ndning av distribuerad RPC kan vara parallell bearbetning av sökfrĂ„gor eller utförande av operationer pĂ„ stora mĂ€ngder datamĂ€ngder.

Egenskaper hos Storm:

  • En enkel programmeringsmodell som avsevĂ€rt förenklar bearbetning av data i realtid;
  • Stöd för alla programmeringssprĂ„k. Det finns moduler för Java, Ruby och Python, och anpassningar för andra sprĂ„k Ă€r inte svĂ„ra tack vare ett mycket enkelt kommunikationsprotokoll, för att implementera stödet för vilket ungefĂ€r 100 rader kod behövs;
  • FelsĂ€kerhet: för att köra en databehandlingsuppgift krĂ€vs att en jar-fil med koden skapas. Storm distribuerar sjĂ€lvmant denna jar-fil över klusternoder, kopplar de relaterade handlarna och organiserar övervakningen. NĂ€r uppgiften Ă€r slutförd kopplas koden automatiskt bort frĂ„n alla noder;
  • Horisonell skalbarhet. Alla berĂ€kningar utförs parallellt, och vid ökad belastning rĂ€cker det att helt enkelt ansluta nya noder till klustret;
  • Tillförlitlighet. Storm garanterar att varje mottaget meddelande kommer att bearbetas helt minst en gĂ„ng. Meddelandet kommer endast att behandlas en gĂ„ng om det inte uppstĂ„r nĂ„gra fel under genomförandet av alla handlare; om problem uppstĂ„r kommer misslyckade bearbetningsförsök att upprepas.
  • Hastighet. Storms kod Ă€r skriven med hög prestanda i Ă„tanke och anvĂ€nder ett system för snabb asynkron meddelandeutbyte. ZeroMQ.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster