Apache Storm 2.0 sistema di computazione distribuitu dispunibule

Vide a luce liberazione significativa di un sistema di trattamentu di l'avvenimenti distribuitu Apache Storm 2.0, notu per a so transizione à una nova architettura implementata in Java, invece di a lingua Clojure utilizata prima.

U prugettu vi permette di urganizà un prucessu garantitu di diversi avvenimenti in tempu reale. Per esempiu, Storm pò esse usatu per analizà i flussi di dati in tempu reale, eseguisce attività di apprendimentu di macchina, urganizà l'informatica cuntinua, implementà RPC, ETL, etc. U sistema sustene u clustering, a creazione di cunfigurazioni toleranti à i difetti, u modu di trattamentu di dati garantitu è ​​hà un altu rendiment, abbastanza per processà più di un milione di richieste per seconda in un node di cluster.

L'integrazione cù diversi sistemi di trasfurmazioni di fila è tecnulugia di basa di dati hè supportata. L'architettura Storm implica a ricezione è l'elaborazione di flussi di dati non strutturati, constantemente aghjurnati aduprendu processori cumplessi arbitrarii cù a capacità di sparte trà e diverse tappe di calculi. U prugettu hè statu rimandatu à a cumunità Apache dopu chì Twitter hà acquistatu BackType, a cumpagnia chì hà sviluppatu u quadru. In pratica, Storm hè stata utilizata in BackType per analizà a riflessione di l'avvenimenti in i microblogs, paragunendu nantu à a mosca novi tweets è i ligami utilizati in elli (per esempiu, hè statu valutatu cumu i ligami esterni o l'annunzii publicati in Twitter sò stati ritrasmessi da altri participanti). ).

A funziunalità di Storm hè paragunata à a piattaforma Hadoop, cù a diferenza chjave chì i dati ùn sò micca almacenati in un magazzinu, ma sò ingeriti esternamente è processati in tempu reale. Storm ùn hà micca una strata di almacenamentu integrata è a quistione analitica cumencia à esse applicata à e dati entranti finu à ch'ella hè annullata (mentre Hadoop usa travaglii MapReduce à tempu finitu, Storm usa l'idea di eseguisce continuamente "topologie"). L'esekzione di i gestori pò esse distribuitu in parechji servitori - Storm parallelizeghja automaticamente u travagliu cù i filamenti in diversi nodi di cluster.

U sistema hè statu scrittu originariamente in Clojure è funziona in a macchina virtuale JVM. A Fundazione Apache hà lanciatu una iniziativa per migrà Storm à un novu kernel scrittu in Java, i risultati di quale sò pruposti in a liberazione di Apache Storm 2.0. Tutti i cumpunenti basi di a piattaforma sò riscritti in Java. U supportu per i gestori di scrittura in Clojure hè statu mantinutu, ma hè avà offertu in forma di ligami. Storm 2.0.0 richiede Java 8. U mudellu di trasfurmazioni multi-threaded hè statu completamente riprogettatu, chì permette ghjunghje un aumentu notevuli in u rendiment (per certi topologies, i ritardi sò stati ridotti da 50-80%).

Apache Storm 2.0 sistema di computazione distribuitu dispunibule

A nova versione offre ancu una nova API Streams typed chì vi permette di definisce i gestori utilizendu operazioni di prugrammazione funziunale. A nova API hè implementata in cima à l'API di basa standard è sustene a fusione automatica di l'operazioni per ottimisà u so processatu. L'API Windowing per l'operazioni di a finestra hà aghjuntu supportu per salvà è restaurà u statu in u backend.

Supportu per piglià in contu e risorse supplementari quandu pigliate decisioni micca limitate à
CPU è memoria, cum'è paràmetri di rete è GPU. Un gran numaru di migliure sò stati fatti per assicurà l'integrazione cù a piattaforma Kafka. U sistema di cuntrollu di l'accessu hè statu allargatu per include a capacità di creà gruppi di amministratori è tokens delegati. Migliure aghjunte relative à SQL è supportu di metrica. Novi cumandamenti sò apparsu in l'interfaccia di l'amministratore per debugging u statu di cluster.

Aree d'applicazione per Storm:

  • Trattamentu di flussi di novi dati o aghjurnamenti di basa di dati in tempu reale;
  • Computing Continuu: Storm pò eseguisce dumande cuntinue è processà flussi cuntinui, dendu risultati di trasfurmazioni à u cliente in tempu reale.
  • Chjama di Procedura Remota Distribuita (RPC): Storm pò esse aduprata per furnisce l'esekzione parallela di e dumande intensive di risorse. Un travagliu ("topulugia") in Storm hè una funzione distribuita in i nodi chì aspetta chì i missaghji ghjunghjenu chì anu da esse processati. Dopu avè ricivutu un missaghju, a funzione u processa in u cuntestu lucale è torna u risultatu. Un esempiu di utilizà RPC distribuitu seria di processà e dumande di ricerca in parallelu o fà operazioni nantu à un grande settore di setti.

Caratteristiche Tempesta:

  • Un mudellu di prugrammazione simplice chì simplificà assai u prucessu di dati in tempu reale;
  • Supportu per qualsiasi lingua di prugrammazione. I moduli sò dispunibili per Java, Ruby è Python, l'adattazione per altre lingue hè faciule grazia à un protokollu di cumunicazione assai simplice chì richiede circa 100 linee di codice per supportà;
  • Tolleranza à i difetti: per eseguisce un travagliu di trattamentu di dati, avete bisognu di generà un schedariu jar cù codice. Storm distribuirà in modu indipendenti stu schedariu jar in i nodi di cluster, cunnetta i gestori assuciati cun ellu, è urganizeghja u monitoraghju. Quandu u travagliu finisci, u codice serà automaticamente disattivatu in tutti i nodi;
  • Scalabilità horizontale. Tutti i calculi sò realizati in modu parallelu; cum'è a carica aumenta, hè abbastanza per cunnette novi nodi à u cluster;
  • Affidabilità. Storm assicura chì ogni missaghju entrante hè cumplettamente trattatu almenu una volta. U missaghju serà trattatu una volta solu s'ellu ùn ci sò micca errori quandu passanu per tutti i gestori; se i prublemi si presentanu, i tentativi di trasfurmazioni senza successu seranu ripetuti.
  • Velocità. U codice di Storm hè scrittu cun un altu rendimentu in mente è usa u sistema per a messageria asincrona rapida ZeroMQ.

Source: opennet.ru

Add a comment