Apache Storm 2.0 sistema informatiko banatua eskuragarri

Argia ikusi banatutako gertaerak prozesatzeko sistema baten kaleratze esanguratsua Apache Storm 2.0, Javan inplementatutako arkitektura berri baterako trantsizioagatik nabarmentzen da, aurretik erabilitako Clojure hizkuntzaren ordez.

Proiektuak hainbat ekitaldiren prozesamendu bermatua denbora errealean antolatzeko aukera ematen du. Esaterako, Storm datu-korronteak denbora errealean aztertzeko, ikaskuntza automatikoko zereginak exekutatzeko, etengabeko konputazioa antolatzeko, RPC, ETL eta abar ezartzeko erabil daiteke. Sistemak clustering-a onartzen du, akatsekiko tolerantzia-konfigurazioak sortzea, datuak prozesatzeko modua bermatua eta errendimendu handia du, nahikoa da segundoko milioi bat eskaera baino gehiago prozesatzeko cluster-nodo batean.

Ilarak prozesatzeko hainbat sistemarekin eta datu-baseen teknologiarekin integratzea onartzen da. Ekaitz arkitekturak etengabe eguneratutako datu-korronteak jaso eta prozesatzen ditu prozesadore konplexu arbitrarioak erabiliz, kalkulu-fase desberdinen artean banatzeko gaitasuna dutenak. Proiektua Apache komunitatearen esku utzi zen Twitterrek BackType, jatorriz esparrua garatu zuen konpainia, erosi ostean. Praktikan, Storm BackType-n mikroblogetako gertaeren isla aztertzeko erabili zen, atsedenaldiko txio berriak eta horietan erabilitako estekak alderatuz (adibidez, baloratu zen nola Twitterren argitaratutako kanpoko estekak edo iragarkiak beste parte-hartzaile batzuek nola berritzen zituzten). ).

Storm-en funtzionaltasuna Hadoop plataformarekin alderatzen da, eta gako-desberdintasuna datuak ez direla biltegi batean gordetzen dira, kanpoan irensten direla eta denbora errealean prozesatzen direla baizik. Stormek ez du biltegiratze geruza barneraturik eta kontsulta analitikoa sartzen hasten den datuei aplikatzen hasten da bertan behera utzi arte (Hadoop-ek denbora mugatuko MapReduce lanak erabiltzen dituen bitartean, Stormek "topologiak" etengabe exekutatzeko ideia erabiltzen du. Kudeatzaileen exekuzioa hainbat zerbitzaritan banatu daiteke - Storm automatikoki paralelizatzen du lana kluster nodo desberdinetako hariekin.

Sistema jatorriz Clojure-n idatzi zen eta JVM makina birtualean exekutatzen da. Apache Fundazioak Storm Javan idatzitako nukleo berri batera migratzeko ekimena jarri du abian, eta horren emaitzak Apache Storm 2.0 bertsioaren bertsioan proposatzen dira. Plataformaren oinarrizko osagai guztiak Javan berridazten dira. Clojure-n idazketa-kudeatzaileentzako laguntza mantendu da, baina orain koadernetan eskaintzen da. Storm 2.0.0-k Java 8 behar du. Hari anitzeko prozesatze-eredua guztiz birmoldatu da, ahalbidetuz. lortu errendimenduaren gorakada nabarmena (topologia batzuetarako, atzerapenak % 50-80 murriztu ziren).

Apache Storm 2.0 sistema informatiko banatua eskuragarri

Bertsio berriak ere idatzitako Streams API berri bat eskaintzen du, kudeatzaileak programazio estiloko eragiketa funtzionalak erabiliz definitzeko aukera ematen duena. API berria oinarrizko API estandarraren gainean ezartzen da eta eragiketen batuketa automatikoa onartzen du haien prozesamendua optimizatzeko. Leiho-eragiketetarako Windowing APIak atzeko aldean egoera gordetzeko eta leheneratzeko laguntza gehitu du.

Erabakiak hartzerakoan baliabide osagarriak kontuan hartzeko laguntza
CPU eta memoria, hala nola sarearen eta GPUaren ezarpenak. Hobekuntza ugari egin dira plataformarekin integrazioa bermatzeko Kafka. Sarbide kontrolatzeko sistema zabaldu egin da administratzaile-taldeak sortzeko eta eskuordetzeko tokenak sartzeko. SQL eta metrika euskarriarekin lotutako hobekuntzak gehitu dira. Administratzailearen interfazean komando berriak agertu dira kluster egoera arazteko.

Ekaitz aplikazio-eremuak:

  • Datu berrien edo datu-baseen eguneraketak denbora errealean prozesatzea;
  • Etengabeko Informatika: Storm-ek etengabeko kontsultak egin ditzake eta etengabeko korronteak prozesatu ditzake, prozesatzeko emaitzak bezeroari denbora errealean emanez.
  • Urrutiko Prozedura Dei Banatua (RPC): Storm erabil daiteke baliabide askoko kontsulten exekuzio paraleloa emateko. Ekaitz-eko lana ("topologia") nodoetan banatutako funtzio bat da, prozesatu beharreko mezuak noiz iritsiko zain. Mezu bat jaso ondoren, funtzioak testuinguru lokalean prozesatzen du eta emaitza itzultzen du. Banatutako RPC erabiltzearen adibide bat bilaketa-kontsultak paraleloan prozesatzea edo multzo handi batean eragiketak egitea litzateke.

Ekaitz Ezaugarriak:

  • Denbora errealeko datuen tratamendua asko errazten duen programazio eredu sinplea;
  • Edozein programazio-lengoaientzako laguntza. Moduluak Java, Ruby eta Python-erako eskuragarri daude, beste lengoaietarako egokitzapena erraza da komunikazio-protokolo oso sinple bati esker, 100 kode-lerro inguru onartzen dituena;
  • Akatsen tolerantzia: datuak prozesatzeko lan bat exekutatzeko, jar fitxategi bat sortu behar duzu kodearekin. Stormek modu independentean banatuko du jar fitxategi hau cluster-nodoetan zehar, harekin lotutako kudeatzaileak konektatuko ditu eta monitorizazioa antolatuko du. Lana amaitzen denean, kodea automatikoki desgaituko da nodo guztietan;
  • Eskalagarritasun horizontala. Kalkulu guztiak modu paraleloan egiten dira;karga handitzen den heinean, nahikoa da klusterera nodo berriak konektatzea;
  • Fidagarritasuna. Storm bermatzen du sarrerako mezu bakoitza guztiz prozesatzen dela gutxienez behin. Mezua behin bakarrik prozesatuko da kudeatzaile guztietatik igarotzean errorerik ez badago; arazoak sortzen badira, arrakastarik gabeko prozesatzeko saiakerak errepikatuko dira.
  • Abiadura. Storm-en kodea errendimendu handia kontuan hartuta idatzita dago eta sistema erabiltzen du mezularitza asinkrono azkarrak egiteko ZeroMQ.

Iturria: opennet.ru

Gehitu iruzkin berria