Sunteți pe pagina 1din 7

Universitatea Politehnica din București

Facultatea de Automatică și Calculatoare


Departamentul de Calculatoare

Real-time stream processing for Big Data


Autori: Wolfram Wingerath*, Felix Gessert, Steffen Friedrich, and Norbert Ritter

Student: Ion-Robert Dinică

București 2022
Conținut

Sumar ............................................................................................................................................................ 3
Elemente pozitive.......................................................................................................................................... 3
Comonente principale ................................................................................................................................... 3
Dezavantaje ale articolului ............................................................................................................................ 6
Concluzii ....................................................................................................................................................... 6
Bibliography ................................................................................................................................................. 7
Sumar

În contextul curent în care suntem înconjurați din ce în ce mai multe date, cu provenințe din extrem de
multe domenii și în carea procesarea real-time a informației a devenit o necesitate, este resimțită profund
nevoia existenței unor tehnologii și tehnici care să realizeze într-un mod eficient acest lucru. Articolul de
față are ca scop prezentarea mai multor tehnologii aplicate în contextul procesării real-time a datelor.
Accentul este pus pe importanța pe care aceste tehnologii o au, pe modul de funcționare, dar, în același timp
se insistă și pe aspectul de eficiență, termen definitoriu în contextul domeniul de Big Data.
Articolul de față are o structură ierarhică, plecând de la mediul în care tehnologiile pe care se insistă sunt
utilizate si în care se face deploy, urmând ca mai apoi să se insiste asupra modului de funcționare al acestora,
iar, în final, este prezentată o viziune de ansamblu asupra celor prezentate, accentul fiind pus si pe
diferențele dintre ele și, nu în ultimul rând, sunt amintite câteva tehnologii recent apărute, ca de exemplu
Flink, fiind prezentat în comparație cu Spark Streaming.
Principalul scop al articolului nu este de a aduce în evidență o tehnologie proprie a autorilor sau de a insita
într-un mod aprofundat pe tehnici din domeniul Big Data, ci doar de a prezenta o serie de alternative despre
cum se poate realiza, într-un mod eficient, procesarea real-time a datelor, fiind redate, .în același timp, și
diferențele dintre paradigmele de batch processing și stream processing.

Elemente pozitive

Accentul pus asupra unor tehnologii noi dintr-un domeniu care ajunge să fie din ce în ce mai relevant este
un prim aspect care trebuie menționat ca fiind pozitiv. Un alt element relevant este prezentarea principalelor
arhitecturi de pipeline-uri utilizate (arhitectura Lambda și arhitectura Kappa) atunci când vine vorba de
procesarea datelor și încadrarea tehnologiilor descrise corespunzator cu aceste arhitecturi.
De asemenea, prezentarea importanței tehnicii de stream processing în realizarea analizei datelor, a
acentului pus pe a avea o latență cât mai mică atunci cand ne raportăm la procesarea datelor și, nu în ultimul
rând, a reliefarii unor tehnologii atât din categoria celor care realizează procesarea ca stream de date, cât și
din categoria celor care folosesc tehnica de micro-batch reprezintă alte aspecte pozitive ale acestui articol.

Componente principale

În prezent este dificil să evidențiem existența unor sisteme care să fie pur real-time. Asa cum este menționat
și în articolul de față majoritatea arhitecturilor de Big Data sunt concepute din componente distribuite care
comunică într-un mod asincron, multe dintre ele find construite peste Java Virtul Machine. Un pipeline
tipic pentru streaming (Figura 1) constă din colectarea datelor din diverse medii, apoi aceste date sunt
trimise către stratul următor, care de obicei este un sistem pentru prelucrarea de mesaje (messaging system),
ca de exemplu Kafka, RabbitMq, ZeroMq sau Kinesis, iar după acest pas este realizată procesarea efectivă
a datelor prin intermediul unor tehnologii ca Storm, Trident sau Spark Streaming. Pentru combinarea
avantajelor celor două paradigme amintite: stream processing și batch processing, sunt cunoscute două
arhitecturi populare: arhitectura Lambda (Figura 2) și arhitectura Kappa (Figura 3).

3
Figura 1 [1]

Figura 2 [1] Figura 3 [1]

După cum este evidențiat și de către autorii articolului, principala diferență între sistemele care realizează
procesarea real-time este dată de modelul de procesare folosit (Figura 4). Alegerea unui anumit sistem de
procesare înseamnă, de asemenea, și realizarea unui compromis între latență și throughput. O primă
tehnologie prezentată este Storm, care face parte din categoria sistemelor care realizează procesarea pe rând
a datelor (one at a time), fiind o soluție scalabilă, rezistență la defecte și elastică, având, de asemenea,
avantajul că peste API-ul de Java utilizat oferă adaptoare pentru mai multe limbaje: Perl, Python și Ruby.
Storm Trident este o altă soluție, care vine ca o îmbunătățire a Storm, oferind o mai mare siguranță în ceea
ce privește ordonarea și, de asemenea, propune o interfață mai abstractă cu suport pentru operații ca join,
aggregation și grouping. O altă diferența față de Storm, în care o topologie de pipeline era modelelată ca
un graf unidirecțional, este dată de faptul ca topologia de pipeline este modelată ca un graf direct aciclic
(DAG). Samaza reprezintă un alt sistem asemănător cu Storm, făcând, din nou, procesarea pe rând a datelor
(one at a time). Această soluție a fost co-dezvoltată cu Kafka, de aceea pentru a putea folosi Samaza la
potențialul maxim este nevoie să se utilizeze Kafka în layer-ul precedent realizării procesării propri-zise a

4
datelor. Un ultim sistem prezentat este Spark Streaming, care realizează procesarea datelor în format micro-
batch. Considerat a fi un succesor pentru Hadoop, aduce o serie de îmbunătățiri dintre care cea mai
importanată este creșterea performanței prin utilizarea unei tehnici de caching. De asemnea, Spark oferă o
mare varietate de algoritmi de Învățare Automată prin intermediul unei biblioteci interne. Dat fiind faptul
ca Spark Streaming lucrează cu micro-batch-uri, o secvență de date este fracționată în mai multre stream-
uri discretizate, numite DStream care apoi sunt procesate.

Figura 4 [1]

În figura 5 este prezentată o sumarizare a comparației între sistemele prezentate în acest articol.

Figura 5 [1]

După cum se poate observa, rezultatele arată ca atunci când dorim să utilizăm un sistem care să ofere latență
mică fară a ne intersa ordinea este recomandat să utilizăm Storm. În schimb, dacă avem nevoie de un sistem
care să ofere atât ordonare, cât și o procesare strictă (exactly once processing) se poate folosi Trident.
Samaza reprezintă o alternativă atunci când nu suntem puternic focusați pe a avea o latență cât mai mică,
dar ne dorim să avem un management al stării cât mai bun. Nu în ultimul rând, Spark Streaming realizează
o unificare între tehnica de batch-processing și tehnica de stream-processing, oferind o procesarea strictă
a datelor (exactly once processing), o varietate de biblioteci care pot fi folosite, dar vine cu dezavantajul
unei latențe ridicate. Cu toate acestea Spark Streaming este unul dintre sistemele extrem de des folosit în
numeroase aplicații care sunt soft real-time. În figura 6, preluată din articolul [2], este redată o camparație
a valorii metricii de latență, între o parte din sistemele amintite anterior, pentru experimentul de windowed
aggregation. Pentru latență sunt redate valorile min, avg, max si quantiles (90, 95, 99), iar în cazul
experimentului lungimea ferestrei este de 8s, iar slide-ul folosit pentru fereastra este de 4s.

5
Figura 6 [2]

Dezavantaje ale articolului

Consider că dezavantajul major al acestui articol este lipsa unor experimente concrete care să reliefeze
punctele tari și punctele slabe pentru fiecare dintre sistemele prezentate. De asemenea, lipsa unor
specificații clare despre modul de folosire al fiecarei tehnologi amintite reprezintă un alt dezavantaj.
Articolul de față nu face trimiteri la modalități de utilizare cu exemple de cod care să prezinte concret cum
sunt utilizate sistemele descrise.

Concluzii

Din punctul meu de vedere, acest articol prezintă o viziune de ansamblu asupra celor mai populare
tehnologii utilizate în procesarea real-time a datelor în contextul aplicațiilor de Big Data. Accentul în acest
articol nu este pus foarte mult pe noțiunile tehnice, fiind doar amintite succinte diverse tehnici și tehnologii,
fară a se intra profund în detalii ceea ce îl face un articol ușor de înțeles, dar, în același timp, are dezavantajul
lipsei unor experimente mai clare care să reliefeze intențiile autorilor în realizarea acestuia.

6
Bibliography

1. Wingerath, W., Gessert, F., Friedrich, S., & Ritter, N. (2016). Real-time stream processing for Big
Data. it-Information Technology, 58(4), 186-194.
2. Karimov, J., Rabl, T., Katsifodimos, A., Samarev, R., Heiskanen, H., & Markl, V. (2018, April).
Benchmarking distributed stream data processing systems. In 2018 IEEE 34th International
Conference on Data Engineering (ICDE) (pp. 1507-1518). IEEE.

S-ar putea să vă placă și