Apache Storm 2.0 distributed computing system available

Nakita ang liwanag makabuluhang pagpapalabas ng isang distributed event processing system Apache Storm 2.0, kapansin-pansin sa paglipat nito sa isang bagong arkitektura na ipinatupad sa Java, sa halip na ang dating ginamit na wikang Clojure.

Ang proyekto ay nagbibigay-daan sa iyo upang ayusin ang garantisadong pagproseso ng iba't ibang mga kaganapan sa real time. Halimbawa, maaaring gamitin ang Storm upang pag-aralan ang mga stream ng data sa real time, magpatakbo ng mga gawain sa pag-aaral ng machine, ayusin ang tuluy-tuloy na pag-compute, ipatupad ang RPC, ETL, atbp. Sinusuportahan ng system ang clustering, paglikha ng mga fault-tolerant na configuration, garantisadong mode ng pagpoproseso ng data at may mataas na performance, sapat upang iproseso ang higit sa isang milyong kahilingan kada segundo sa isang cluster node.

Ang pagsasama sa iba't ibang mga sistema ng pagproseso ng queue at mga teknolohiya ng database ay suportado. Ang arkitektura ng Storm ay nagsasangkot ng pagtanggap at pagproseso ng hindi nakabalangkas, patuloy na ina-update na mga stream ng data gamit ang mga di-makatwirang kumplikadong processor na may kakayahang maghati sa pagitan ng iba't ibang yugto ng mga kalkulasyon. Ang proyekto ay ipinasa sa komunidad ng Apache pagkatapos makuha ng Twitter ang BackType, ang kumpanyang orihinal na bumuo ng balangkas. Sa pagsasagawa, ginamit ang Storm sa BackType upang pag-aralan ang pagmuni-muni ng mga kaganapan sa mga microblog, sa pamamagitan ng paghahambing sa mabilisang mga bagong tweet at ang mga link na ginamit sa mga ito (halimbawa, nasuri kung paano ni-rebroadcast ng ibang mga kalahok ang mga panlabas na link o anunsyo na nai-publish sa Twitter. ).

Ang pag-andar ng Storm ay inihambing sa platform ng Hadoop, na ang pangunahing pagkakaiba ay ang data ay hindi naka-imbak sa isang bodega, ngunit ini-ingested sa labas at pinoproseso sa real time. Ang Storm ay walang built-in na layer ng imbakan at ang analytical na query ay nagsisimulang ilapat sa papasok na data hanggang sa ito ay kanselahin (habang ang Hadoop ay gumagamit ng may hangganang oras na mga trabaho sa MapReduce, ginagamit ng Storm ang ideya ng patuloy na pagpapatakbo ng "mga topologies"). Ang pagpapatupad ng mga humahawak ay maaaring ipamahagi sa ilang mga server - Awtomatikong ipinaparallelize ng Storm ang trabaho sa mga thread sa iba't ibang cluster node.

Ang system ay orihinal na nakasulat sa Clojure at tumatakbo sa loob ng JVM virtual machine. Ang Apache Foundation ay naglunsad ng isang inisyatiba upang ilipat ang Storm sa isang bagong kernel na nakasulat sa Java, ang mga resulta nito ay iminungkahi sa paglabas ng Apache Storm 2.0. Ang lahat ng mga pangunahing bahagi ng platform ay muling isinulat sa Java. Ang suporta para sa mga humahawak ng pagsusulat sa Clojure ay napanatili, ngunit ngayon ay inaalok sa anyo ng mga binding. Ang Storm 2.0.0 ay nangangailangan ng Java 8. Ang multi-threaded processing model ay ganap na muling idinisenyo, na nagpapahintulot upang makamit isang kapansin-pansing pagtaas sa pagganap (para sa ilang mga topologies, ang mga pagkaantala ay nabawasan ng 50-80%).

Apache Storm 2.0 distributed computing system available

Nag-aalok din ang bagong bersyon ng bagong na-type na Streams API na nagbibigay-daan sa iyong tukuyin ang mga humahawak gamit ang functional na mga pagpapatakbong istilo ng programming. Ang bagong API ay ipinatupad sa itaas ng karaniwang base API at sumusuporta sa awtomatikong pagsasama ng mga operasyon upang ma-optimize ang kanilang pagproseso. Ang Windowing API para sa mga pagpapatakbo ng window ay nagdagdag ng suporta para sa pag-save at pagpapanumbalik ng estado sa backend.

Suporta para sa pagsasaalang-alang ng mga karagdagang mapagkukunan kapag gumagawa ng mga desisyon na hindi limitado sa
CPU at memorya, gaya ng mga setting ng network at GPU. Ang isang malaking bilang ng mga pagpapabuti ay ginawa upang matiyak ang pagsasama sa platform Kafka. Ang sistema ng kontrol sa pag-access ay pinalawak upang isama ang kakayahang lumikha ng mga pangkat ng administrator at magtalaga ng mga token. Nagdagdag ng mga pagpapahusay na nauugnay sa SQL at suporta sa mga sukatan. Lumitaw ang mga bagong command sa interface ng administrator para sa pag-debug ng estado ng cluster.

Mga lugar ng aplikasyon para sa Storm:

  • Pagproseso ng mga stream ng bagong data o database update sa real time;
  • Patuloy na Pag-compute: Ang Storm ay maaaring magpatakbo ng tuluy-tuloy na mga query at magproseso ng tuluy-tuloy na mga stream, na naghahatid ng mga resulta sa pagpoproseso sa kliyente nang real time.
  • Distributed Remote Procedure Call (RPC): Maaaring gamitin ang Storm upang magbigay ng parallel na pagpapatupad ng mga query na masinsinang mapagkukunan. Ang trabaho (β€œtopology”) sa Storm ay isang function na ipinamahagi sa mga node na naghihintay para sa mga mensaheng dumating na kailangang iproseso. Pagkatapos makatanggap ng mensahe, pinoproseso ito ng function sa lokal na konteksto at ibinabalik ang resulta. Ang isang halimbawa ng paggamit ng distributed RPC ay ang pagproseso ng mga query sa paghahanap nang magkatulad o magsagawa ng mga operasyon sa isang malaking hanay ng mga set.

Mga Tampok ng Bagyo:

  • Isang simpleng modelo ng programming na lubos na pinapasimple ang real-time na pagproseso ng data;
  • Suporta para sa anumang mga programming language. Ang mga module ay magagamit para sa Java, Ruby at Python, ang pagbagay para sa iba pang mga wika ay madali salamat sa isang napaka-simpleng protocol ng komunikasyon na nangangailangan ng humigit-kumulang 100 linya ng code upang suportahan;
  • Fault tolerance: para magpatakbo ng trabaho sa pagpoproseso ng data, kailangan mong bumuo ng jar file na may code. Independyenteng ipapamahagi ng Storm ang jar file na ito sa mga cluster node, ikonekta ang mga humahawak na nauugnay dito, at ayusin ang pagsubaybay. Kapag nakumpleto na ang trabaho, awtomatikong idi-disable ang code sa lahat ng node;
  • Pahalang na scalability. Ang lahat ng mga kalkulasyon ay isinasagawa sa parallel mode, habang tumataas ang pagkarga, sapat na upang ikonekta lamang ang mga bagong node sa kumpol;
  • pagiging maaasahan. Tinitiyak ng Storm na ang bawat papasok na mensahe ay ganap na naproseso kahit isang beses. Ang mensahe ay ipoproseso nang isang beses lamang kung walang mga error kapag dumadaan sa lahat ng mga humahawak; kung may mga problema, kung gayon ang hindi matagumpay na mga pagtatangka sa pagproseso ay mauulit.
  • Bilis. Ang code ng Storm ay nakasulat na may mataas na pagganap sa isip at ginagamit ang system para sa mabilis na asynchronous na pagmemensahe ZeroMQ.

Pinagmulan: opennet.ru

Magdagdag ng komento