ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 45
Abonament PDF

Kafka în ecosistemul BigData

Ovidiu Petridean
Senior Software Developer @ SDL Research



PROGRAMARE


Articolul își propune să prezinte o serie de noțiuni generale referitoare la Kafka și la rolul pe care acest sistem îl joacă în ecosistemul BigData.

Domeniul BigData este tot mai popular, iar interesul pentru tehnologiile din acest ecosistem este unul în creștere. Una dintre cele mai mari provocări ale BigData este partea de analiză a datelor. Dar pentru a face față acestei provocări este important să ne centrăm atenția asupra modului cum reușim să colectăm aceste date? În ajutorul nostru intervine sistemul Apache Kafka.

Apache Kafka

Inițial dezvoltat de Linkedin, utilizările lui Apache Kafka includ consumul în timp real de date generate de aplicații, de website-uri sau de diverși senzori. Kafka se distinge ca fiind un proiect open-source de o foarte bună calitate, aspect care a atras foarte multă atenție și numeroși contributori. Dintre utilizatorii cei mai cunoscuți ai acestui sistem utilizatorii cei mai cunoscuți îi menționăm pe : Uber, Twitter, Netflix, Yahoo sau Cisco.

Apache Kafka este un sistem de tip pub-sub construit sub forma unui commit log distribuit.
Terminologia Kafka are următoarele caracteristici:

-Menține un flux de mesaje în categorii numite topicuri.

-Procesele care publică mesaje se numesc producători.

-Procesele cu o subscripție la aceste topicuri și care prelucrează mesajele care sunt publicate se numesc consumatori.

-Kafka rulează sub forma unui cluster format din mai multe servere numite brokeri.

O privire de ansamblu a arhitecturii poate fi exemplificată astfel:

Colectarea datelor

Consensul general este că sistemele asemănătoare cu Apache Kafka fac parte din evoluția și diversificarea ecosistemului BigData. Brian Hopkins, vicepreședinte și analist principal la Forrester Research afirma: "Până în 2013, BigData era despre cantități mari de date stocate în sistemul Hadoop, dar acum, dacă nu faci încă acest lucru, ești în urma tendințelor."

Această declarație nu face altceva decât să reliefeze ceea ce deja devine tot mai evident. Colectarea datelor devine crucială pentru procesele analitice, iar multitudinea de sisteme care generează date, transformă această colectare într-o provocare. Kafka îți permite să muți cantități mari de date pe care le face disponibile sub forma unui flux de date celor care au nevoie de ele.

"Internetul lucrurilor" este unul dintre marii contributori când vine vorba de această cantitate uriașă de date care se generează. Este evident că această cantitate de date este într-o continuă creștere având în vedere că avem tot mai multe dispozitive conectate la internet. Pe măsură ce numărul senzorilor și dispozitivelor pe care le purtăm crește, vom avea nevoie să reușim să mutăm, să catalogăm și să analizăm cantități tot mai mari de date.

Până în 2014 vorbeam doar de Hadoop, apoi a apărut Spark, dar acum Kafka completează triada. Acestea formează trei stâlpi importanți în fluxul de ingerare și analiză a datelor într-o arhitectură modernă.

Alimentarea sistemelor specializate

Trebuie să avem în vedere că există o mare varietate de tipuri de date începând cu înregistrări tranzacționale și continuând cu date referitoare la acțiunile utilizatorilor, metrici operaționale, log-uri, etc. De multe ori, același set de date trebuie să alimenteze mai multe sisteme. De exemplu, dacă ne gândim la log-urile unei aplicații, este evident că le putem analiza offline, doar că uneori avem nevoie să căutăm intrări individuale de log-uri. Astfel nu este fezabil să avem două sisteme diferite care colectează aceste date în mod diferit și alimentează apoi două sisteme. Trebuie să luăm în considerare faptul că, deși putem stoca multe date în Hadoop, nu este foarte practic să stocăm toate datele doar acolo, deoarece sunt multe situații în care avem nevoie de date mult mai rapid decât poate Hadoop să ni le ofere.

Un alt exemplu îl oferă sumedenia de acțiuni ale utilizatorilor. Putem astfel folosi Kafka pentru a realiza comunicarea între diverse părți ale aplicației, dar pe de altă parte putem și stoca în Hadoop aceste acțiuni pentru o analiză ulterioară. Astfel, un singur flux de date este utilizat de doi consumatori care prelucrează datele în mod diferit.

Pe lângă aceasta, Kafka poate să stocheze volume importante de date utilizând sisteme hardware ieftine. De asemenea, Kafka este un sistem care permite subscripții multiple, altfel toate datele publicate pot fi consumate de mai multe ori de către numeroși consumatori. Kafka păstrează toate datele pe disk, reușind să le facă disponibile fie în timp real, fie în loturi mai mari de date, fără că acest lucru să afecteze performanța. De cele mai multe ori Kafka este privit ca un sistem central care este capabil să consume cantități impresionante de date în timp real.
Această platformă de tip flux este prezentată în imaginea alăturată.

Unul dintre marile avantaje ale acestei platforme este acela că oricând putem adăuga un nou sistem specializat care să consume date publicate în Kafka. Este astfel evidențiată direcția în care se îndreaptă dezvoltarea ecosistemului BigData. Vom vedea probabil tot mai multe platforme de date care utilizează sisteme pub-sub cum este Kafka și care vor juca un rol tot mai important pe măsură ce tot mai multe companii se îndreaptă spre procesări de date mari în timp real. Aceasta va avea impact cu siguranță asupra modului în care datele sunt schematizate. Se va face trecerea de la modelul actual în care toate datele sunt stocate în Hadoop și abia apoi datele sunt schematizate pentru a fi compatibile cu diverse sisteme. Acest proces nu este ideal și poate că e mai potrivit să ne gândim ce vom face cu datele încă din momentul în care începe ingestia acestora în Kafka.

Ecosistemul Kafka

Ecosistemul Kafka cuprinde o mulțime de sisteme care alături de acesta contribuie la procesare de fluxuri de date, integrare cu Hadoop, căutări și interogări, integrări cu AWS,

logging sau metrici. Vom detalia foarte succint opțiunile pe care le avem la dispoziție pentru fiecare dintre aceste cazuri.

Procesare de fluxuri de date

-Storm-Un framework de procesare de fluxuri de date.

-Samza-Un framework de procesare de fluxuri de date bazat pe YARN.

-Storm Spout-Consumator de mesaje din Kafka, care apoi sunt emise în formatul specific Storm.

-Kafka-Storm-Un conector între Kafka și Storm care include și o integrare cu Avro.

-SparkStreaming-Consumator de date din Kafka pentru Spark.

Integrare cu Hadoop

-Camus - Este folosit de către Linkedin pentru a selecta datele din Kafka și a le transfera spre HDFS

-Kafka Hadoop Loader - Este un utilitar de transfer al datelor din Kafka pe HDFS diferit de cel inclus în distribuția standard

-Flume - Conține un consumator de Kafka și un producător pentru HDFS

-Kangaroo - Un utilitar care consumă date din Kafka în diverse formate având la dispoziție și codecuri de compresie

Căutări și interogări

-ElasticSearch-Poate fi utilizat un consumator de Kafka pentru a citi mesajele pe care să le indexeze apoi în ElasticSearch.

-Presto-Acest conector permite efectuarea de interogări de tip SQL în Kafka.

-Hive-Hive SerDe permite efectuarea de interogări utilizând Hive SQL.

Logging

-Syslog producer-Un producător de mesaje de tip syslog care suportă atât date neprocesate cât și date în formatul protobuf.

-LogStash Integration-Integrare Kafka-Logstash.

Concluzii

Este tot mai evident că evoluția BigData este una impresionantă, iar rata de adopție a acestor tehnologii crește continuu.

În tot acest context BigData care în mod evident nu se limitează la Hadoop, Kafka începe să joace un rol tot mai important. Popularitatea sistemului Apache Kafka este în mare parte datorată faptului că este un proiect foarte competitiv și are avantajul de a fi promovat de unii dintre cei mai mari jucători din industrie.

Numărul tot mai mare de senzori care ne însoțesc viață cotidiană, fie că vorbim de telefoane, ceasuri inteligente, dispozitive pentru sport sau senzorii dintr-o casă inteligentă, generează o cantitate enormă de date. Aici Kafka împreună cu sistemele de tip Hadoop joacă un rol crucial completându-se reciproc. Hadoop apare din nevoia de a stoca datele în HDFS pentru analize ulterioare, pe când Kafka este cel care asigură transportul datelor cu o viteză impresionantă, accesul distribuit la date și implicit prelucarea lor în timp real.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects