Razlike med Kafko in Spark

Organizacije nenehno rastejo z ogromno podatkov. Hadoop poskušajo uporabiti za tako ogromne podatke namesto tradicionalnih RDBMS. Hkrati si želijo hitre obdelave in izhoda v realnem času. Hadoop je odprtokodna platforma, kjer lahko uporabljamo več jezikov za različne vrste orodij, kot so Python, Scala. Za sprotno obdelavo v Hadoopu lahko uporabimo Kafka in Spark. To je majhen članek, v katerem poskušam razložiti, kako bo Kafka proti Spark delovala.

Kafka

Kafka je odprtokodna platforma za obdelavo tokov, ki jo je razvil Apache. Je posrednik med izvorom in namembnim mestom za pretakanje v realnem času, kjer lahko podatke obdržimo za določeno časovno obdobje. Kafka je sistem porazdeljenih sporočil. Kjer lahko uporabimo te obstojne podatke za sprotni postopek. Deluje kot storitev na enem ali več strežnikih. Kafka hrani tok zapisov v kategorijah, imenovanih teme. Vsak zapis toka je sestavljen iz ključa, vrednosti in časovne žige.

Zagon strežnika Kafka

>bin/Kafka-server-start.sh config/server.properties

Sledi glavna sestavina Kafke

Vir: To se bo sprožilo, ko se pri viru pojavi nov CDC (Change Data Capture) ali nov vložek. Za to moramo določiti stolpec s ključi, da prepoznamo spremembo.

Posrednik: odgovoren za shranjevanje podatkov. Vsak posrednik nima nobene particije.

Tema: Podatke kategorizira. Teme v Kafki vedno naroči več potrošnikov, ki se naročijo na podatke, zapisane vanjo.

Če želite ustvariti temo

> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

In da si ogledate seznam tem

> bin/kafka-topics.sh --list --zookeeper localhost:2181

Particija: Teme so dodatno razdeljene na particijo za vzporedno obdelavo.

Proizvajalec: Za objavljanje podatkov je odgovoren proizvajalec. Podatke bo potisnil na teme, ki jih izberejo. Producent bo izbral, kateri zapis bo dodelil kateri particiji znotraj teme.

Kafka je ukazal, da pripravi sporočilo na neko temo.

> bin/Kafka-console-producer.sh --broker-list localhost:9092 --topic test

Živjo, dobro jutro.

To je testno sporočilo.

Potrošnik: Potrošniki bodo porabili podatke iz tem. Potrošnik bo oznaka s svojo skupino potrošnikov. Če ima ista tematika več potrošnikov iz različnih skupin potrošnikov, je bila vsaka od njih poslana vsaki kopiji.

Za shranjevanje podatkov lahko uporabite več virov. Kafka je ukazal, da porabi sporočila na neko temo.

> bin/Kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

Živjo, dobro jutro.

To je testno sporočilo.

Flume: Lahko uporabimo flume Kafka Sink. V katerem: Takoj, ko kateri koli CDC (Change Data Capture) ali New insert flume sproži zapis in podatke potisne na temo Kafka. Za to moramo nastaviti kanal.

Enako kot flume Kafka Sink lahko imamo HDFS, JDBC vir in pomivalno korito.

Kafka ima boljši pretok in ima funkcije, kot so vgrajena particija, razmnoževanje in odpoved napak, zaradi česar je najboljša rešitev za ogromne aplikacije za obdelavo sporočil ali tokov

Iskra

Apache Spark je odprtokodni računalniško-računalniški okvir. Prvotno razvita na kalifornijski univerzi v Berkeleyjevem laboratoriju Amp, kodna zbirka Spark je bila kasneje podarjena programski fundaciji Apache. Spark ponuja vmesnik za programiranje celotnih grozdov z implicitnim paralelizmom podatkov in napakami.

Ko je bil Hadoop predstavljen, je bil Map-Reduce osnovni motor za vsa delovna opravila. V izvedbi Map-Reduce (branje - pisanje) se je zgodil na dejanskem trdem disku. To je razlog za večjo porabo časa in prostora v času izvedbe.

Apache Spark je odprtokodna platforma. Izboljša kakovost izvedbe kot postopekMap-Reduce. Gre za odprto platformo, kjer lahko uporabljate več programskih jezikov, kot so Java, Python, Scala, R. Spark zagotavlja izvedbo v pomnilniku, ki je 100X hitrejša od MapReduce. Pri tem se uporablja definicija RDD. RDD je zanesljiv porazdeljen nabor podatkov, ki omogoča pregledno shranjevanje podatkov v pomnilnik in shranjevanje na disk samo, če je to potrebno. Tu je čas za dostop do podatkov iz pomnilnika namesto diska.

Spark je platforma, kjer lahko podatke shranimo v Data Frame in jih obdelujemo. Razvijalec aplikacij, Data Scientist, Data Analyst lahko s Spark uporabi minimalno količino podatkov v minimalnem časovnem obdobju. V Sparku lahko uporabimo funkcijo, kot je interaktivna, iterativna analiza podatkov.

Spark streaming je še ena funkcija, s katero lahko podatke obdelamo v realnem času. Bančna domena mora izslediti transakcijo v realnem času, da lahko kupcu ponudi najboljšo ponudbo in spremlja sumljive transakcije. Pretakanje iskre je najbolj priljubljeno v mlajši generaciji Hadoop. Spark je lahek API, ki ga je enostavno razviti, kar bo pomagalo razvijalcu, da hitro deluje pri pretakanju projektov. Iskrivo pretakanje bo enostavno povrnilo izgubljene podatke in jih bo mogoče dostaviti točno, ko bo arhitektura vzpostavljena. In brez dodatnih prizadevanj za kodiranje Hkrati lahko delamo na iskrivih pretakanjih in zgodovinskih paketih podatkov (Lambda Architecture).

Pri iskanju iskre lahko kot vir ali pomivalno korito uporabimo več orodij, kot so flume, Kafka, RDBMS.

Lahko pa neposredno pretakamo iz RDBMS v Spark.

Lahko sprožimo iskrico na vrhu HDFS ali brez HDFS. Zato vsi govorijo o njegovi zamenjavi Hadoopa. HDFS je osnovni datotečni sistem za Hadoop. HDFS lahko uporabimo kot vir ali ciljni cilj.

S Spark SQL uporabite osnovne poizvedbe SQL za obdelavo podatkov. Ta iskra nudi boljšim funkcijam, kot je Mlib (knjižnica strojnega učenja), za podatkovnega znanstvenika, da napoveduje.

Primerjava med nogami med Kafko in Spark (Infographics)

Spodaj je zgornjih 5 primerjav med Kafko in Spark

Ključna razlika med Kafko in Spark

Pogovorimo se o nekaj pomembnih razlikah med Kafko in Sparkom:

  • Kafka je posrednik za sporočila. Spark je odprtokodna platforma.
  • Kafka ima proizvajalca, potrošnika in temo za delo s podatki. Če Spark ponuja platformo, potegne podatke, jih hrani, obdeluje in potisne od vira do cilja.
  • Kafka zagotavlja sprotno pretakanje v oknu v realnem času. Kjer Spark omogoča tako sprotni tok kot tudi paketni postopek.
  • V Kafki ne moremo izvesti preobrazbe. Where In Spark izvajamo ETL
  • Kafka ne podpira nobenega programskega jezika za preoblikovanje podatkov. Kjer iskra podpira več programskih jezikov in knjižnic.
  • Tako se Kafka uporablja za pretakanje v realnem času kot kanal ali posrednik med izvorom in ciljem. Kjer Spark uporablja tudi za sprotni tok, paketni postopek in ETL.

Značilnosti Kafke proti Spark

Obstaja nekaj ključnih lastnosti:

  1. Pretok podatkov: Kafka vs Spark zagotavlja pretok podatkov v realnem času od vira do cilja. Kafka samo Pretočite podatke v temo, Spark je procesni pretok podatkov.
  2. Obdelava podatkov: Ne moremo opraviti nobene preobrazbe podatkov, pri katerih Spark lahko podatke pretvorimo.
  3. Obstojni podatki: Kafka obdrži podatke do določenega časa, kot je opredeljeno v konfiguraciji. Za obstoj podatkov moramo uporabiti podatkovni okvir ali objekt nabora podatkov.
  4. Transformacija ETL: S pomočjo iskre lahko izvedemo ETL, kjer Kafka ne zagotavlja ETL.
  5. Upravljanje pomnilnika: Spark uporablja RDD za shranjevanje podatkov na razdeljen način (tj. Predpomnilnik, lokalni prostor), kjer Kafka shranjuje podatke v Topic, tj v pomnilniški pomnilnik.

Primerjalna tabela med Kafka proti Spark

Spodaj je zgornja primerjava med Kafko in Spark:

Merila značilnostiApache iskricaKafka
Hitrost100-krat hitrejši od HadoopaDostojna hitrost
ObravnavatiV realnem času in paketna obdelavaSamo v realnem času / obdelava oken
TežavnostEnostaven za učenje zaradi modulov na visoki ravniEnostavna konfiguracija
OkrevanjeOmogoča obnovitev particij s predpomnilnikom in RDDNapaka / podvajanje
InteraktivnostIma interaktivne načineBrez interaktivnega načina / Porabi podatke

Zaključek

Kafko lahko uporabljamo kot posrednika za sporočila. Podatki lahko obdržijo določeno časovno obdobje. S pomočjo Kafke lahko izvajamo okna v realnem času. Toda v Kafki ne moremo izvesti preobrazbe ETL. Z uporabo Spark lahko obdržimo podatke v podatkovnem objektu in izvedemo preobrazbe ETL do konca.

Zato je najboljša rešitev, če Kafko uporabimo kot strežno platformo za sprotno pretakanje v realnem času.

Priporočeni članek

To je vodilo za največjo razliko med Kafko proti Sparkom. Tukaj razpravljamo tudi o ključnih razlikah med Kaza in vsarkom z infografiko in primerjalno tabelo. Če želite izvedeti več, si lahko ogledate tudi naslednje članke. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Razlika med Apache Kafka proti Flume
  2. Apache Storm proti Kafki
  3. Apache Hadoop proti Apache Spark
  4. Google Cloud v primerjavi z AWS
  5. Kafka proti Kinesis | Top 5 razlik

Kategorija: