Disponita komputika sistemo Apache Storm 2.0 havebla

Vidis la lumon signifa liberigo de distribuita okazaĵa pretigsistemo Apache Storm 2.0, rimarkinda pro ĝia transiro al nova arkitekturo efektivigita en Java, anstataŭe de la antaŭe uzita Clojure-lingvo.

La projekto permesas organizi garantiitan prilaboradon de diversaj eventoj en reala tempo. Ekzemple, Ŝtormo povas esti uzata por analizi datumfluojn en reala tempo, ruli maŝinlernajn taskojn, organizi kontinuan komputadon, efektivigi RPC, ETL, ktp. La sistemo subtenas grupigadon, kreadon de erar-toleremaj agordoj, garantiita datuma prilaborado-reĝimo kaj havas altan rendimenton, sufiĉan por procesi pli ol milionon da petoj je sekundo sur unu clusternodo.

Integriĝo kun diversaj vicopretigsistemoj kaj datumbazaj teknologioj estas subtenata. La Storm-arkitekturo implikas ricevi kaj prilabori nestrukturitajn, konstante ĝisdatigitajn datumfluojn uzante arbitrajn kompleksajn procesorojn kun la kapablo dispartigi inter malsamaj stadioj de kalkuloj. La projekto estis transdonita al la Apache-komunumo post kiam Twitter akiris BackType, la firmaon kiu origine evoluigis la kadron. En la praktiko, Storm estis uzita en BackType por analizi la reflektadon de eventoj en mikroblogoj, per komparo sur la flugo novaj tweets kaj la ligiloj uzitaj en ili (ekzemple, oni taksis kiel eksteraj ligiloj aŭ anoncoj publikigitaj en Twitter estis reelsendo de aliaj partoprenantoj. ).

La funkcieco de Storm estas komparita kun la platformo Hadoop, kun la ŝlosila diferenco estas, ke la datumoj ne estas stokitaj en magazeno, sed estas konsumitaj ekstere kaj prilaboritaj en reala tempo. Storm ne havas enkonstruitan stokan tavolon kaj la analiza demando komencas esti aplikita al envenantaj datumoj ĝis ĝi estas nuligita (dum Hadoop uzas finhavajn MapReduce-laborojn, Storm uzas la ideon kontinue funkcii "topologiojn"). La ekzekuto de pritraktiloj povas esti distribuita tra pluraj serviloj - Ŝtormo aŭtomate paraleligas laboron kun fadenoj sur malsamaj aretnodoj.

La sistemo estis origine skribita en Clojure kaj funkcias ene de la JVM virtuala maŝino. La Apache Foundation lanĉis iniciaton migri Storm al nova kerno skribita en Java, kies rezultoj estas proponitaj en la liberigo de Apache Storm 2.0. Ĉiuj bazaj komponantoj de la platformo estas reverkitaj en Java. Subteno por skribmanigantoj en Clojure estis konservita, sed nun estas ofertita en la formo de ligadoj. Ŝtormo 2.0.0 postulas Java 8. La multfadena pretigmodelo estis tute restrukturita, permesante atingi rimarkebla pliiĝo en rendimento (por iuj topologioj, prokrastoj estis reduktitaj je 50-80%).

Disponita komputika sistemo Apache Storm 2.0 havebla

La nova versio ankaŭ ofertas novan tajpitan Streams API, kiu ebligas al vi difini prizorgantojn per funkciaj program-stilaj operacioj. La nova API estas efektivigita aldone al la norma baza API kaj subtenas aŭtomatan kunfandiĝon de operacioj por optimumigi ilian prilaboradon. La Windowing API por fenestraj operacioj aldonis subtenon por konservi kaj restarigi staton en la backend.

Subteno por konsideri pliajn rimedojn dum decidoj ne limigitaj al
CPU kaj memoro, kiel retaj kaj GPU-agordoj. Granda nombro da plibonigoj estis faritaj por certigi integriĝon kun la platformo Kafka. La sistemo de alirkontrolo estis vastigita por inkludi la kapablon krei administrantajn grupojn kaj delegi ĵetonojn. Aldonitaj plibonigoj rilate al SQL kaj metrika subteno. Novaj komandoj aperis en la administranta interfaco por sencimigi la grapolŝtaton.

Areoj de apliko por Ŝtormo:

  • Prilaborado de fluoj de novaj datumoj aŭ datumbazaj ĝisdatigoj en reala tempo;
  • Kontinua Komputado: Ŝtormo povas prilabori kontinuajn demandojn kaj prilabori kontinuajn fluojn, liverante prilaborajn rezultojn al la kliento en reala tempo.
  • Distribuita Remote Procedure Call (RPC): Ŝtormo povas esti uzita por disponigi paralelan ekzekuton de rimed-intensaj demandoj. Laboro ("topologio") en Storm estas funkcio distribuita tra nodoj, kiu atendas ke mesaĝoj alvenus, kiuj devas esti prilaboritaj. Post ricevi mesaĝon, la funkcio prilaboras ĝin en la loka kunteksto kaj resendas la rezulton. Ekzemplo de uzado de distribuita RPC estus procesi serĉdemandojn paralele aŭ fari operaciojn sur granda aro da aroj.

Ŝtormaj Karakterizaĵoj:

  • Simpla programa modelo kiu tre simpligas realtempan datumtraktadon;
  • Subteno por iuj programlingvoj. Moduloj disponeblas por Java, Ruby kaj Python, adapto por aliaj lingvoj estas facila danke al tre simpla komunika protokolo, kiu postulas ĉirkaŭ 100 liniojn de kodo por subteni;
  • Toleremo al misfunkciadoj: por ruli datuman prilaboradon, vi devas generi jardosieron kun kodo. Ŝtormo sendepende distribuos ĉi tiun jar-dosieron tra la grapolnodoj, konektos la prizorgantojn asociitajn kun ĝi kaj organizos monitoradon. Kiam la laboro finiĝas, la kodo estos aŭtomate malŝaltita en ĉiuj nodoj;
  • Horizontala skaleblo. Ĉiuj kalkuloj estas faritaj en paralela reĝimo; kiam la ŝarĝo pliiĝas, sufiĉas simple konekti novajn nodojn al la areto;
  • Fidindeco. Ŝtormo certigas, ke ĉiu envenanta mesaĝo estas plene prilaborita almenaŭ unufoje. La mesaĝo estos prilaborita unufoje nur se ne estas eraroj dum trapasado de ĉiuj pritraktiloj; se problemoj ekestas, tiam malsukcesaj pretigaj provoj ripetiĝos.
  • Rapido. La kodo de Storm estas skribita kun alta rendimento en menso kaj uzas la sistemon por rapida nesinkrona mesaĝado ZeroMQ.

fonto: opennet.ru

Aldoni komenton