Разлики между Кафка срещу Искра

Организациите непрекъснато нарастват с огромни данни. Те се опитват да използват Hadoop за такива огромни данни вместо традиционните RDBMS. В същото време те искат бърза обработка и продукция в реално време. Hadoop е платформа с отворен код, където можем да използваме няколко езика за различни видове инструменти като Python, Scala. За обработка в реално време в Hadoop можем да използваме Kafka и Spark. Това е малка статия, в която се опитвам да обясня как ще работи Kafka vs Spark.

Кафка

Kafka е платформа за обработка на потоци с отворен код, разработена от Apache. Той е посредник между източник и местоназначение за поточен процес в реално време, при който можем да запазим данните за определен период от време. Kafka е система за разпространение на съобщения. Къде можем да използваме тези постоянни данни за процеса в реално време. Работи като услуга на един или повече сървъри. Kafka съхранява поток от записи в категории, наречени теми. Всеки запис на поток се състои от ключ, стойност и времева марка.

За да стартирате Kafka Server

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

Следват основният компонент на Kafka

Източник: Това ще се задейства, когато в източника се появи нов CDC (Change Data Capture) или нова вложка. За това трябва да определим ключова колона, за да идентифицираме промяната.

Брокер: Кой е отговорен за съхраняване на данни. Всеки Брокер не притежава дял.

Тема: Тя категоризира данните. Темите в Kafka винаги се абонират от множество потребители, които се абонират за данните, написани на него.

За да създадете тема

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

И за да видите списъка с теми

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

Дял: Темите допълнително се разделят на дял за паралелна обработка.

Производител: Производителят отговаря за публикуването на данните. Това ще избута данните към избраните от тях теми. Продуцентът ще избере кой запис да зададе на кой дял в темата.

Кафка е заповядал да създаде съобщение на тема.

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

Здравейте добро утро.

Това е тестово съобщение.

Потребител: Потребителите ще консумират данни от теми. Потребителят ще бъде етикет със своята група потребители. Ако една и съща тема има множество потребители от различни групи потребители, всяко копие е изпратено до всяка група потребители.

Можете да потънете с множество източници, за да запазите данните. Кафка е заповядал да консумира съобщения на тема.

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

Здравейте добро утро.

Това е тестово съобщение.

Flume: Можем да използваме мивка Kafka Sink. В който, веднага щом CDC (Change Data Capture) или New insert flume ще задейства записа и ще избута данните към темата Kafka. За целта трябва да настроим канала.

Същото като мивка Kafka Sink, ние можем да имаме HDFS, JDBC източник и мивка.

Kafka има по-добра производителност и разполага с функции като вграден дял, репликация и отказоустойчивост, което го прави най-доброто решение за огромни приложения за обработка на съобщения или потоци

искра

Apache Spark е рамка за изчисляване на клъстери с отворен код. Първоначално разработена в Калифорнийския университет, Amp Lab в Беркли, кодовата база Spark по-късно е дарена на софтуерната фондация Apache. Spark предоставя интерфейс за програмиране на цели клъстери с неявен паралелизъм на данните и толерантност.

Когато Hadoop беше представен, Map-Reduce беше основният двигател за изпълнение на всяка задача. В процеса на изпълнение на Map-Reduce (Read - Write) се случи на действителен твърд диск. Това е причината за повече консумация на време и пространство към момента на изпълнение.

Apache Spark е платформа с отворен код. Подобрява качеството на изпълнение от процесаMap-Reduce. Това е отворена платформа, където можете да използвате няколко програмни езика като Java, Python, Scala, R. Spark осигурява изпълнение в паметта, което е 100X по-бързо от MapReduce. Това използва дефиницията на RDD. RDD е надежден разпределен набор от данни, който ви позволява да съхранявате данни в паметта по прозрачен начин и да ги запазвате на диск само според изискванията. Тук е времето за достъп до данни от паметта вместо от диска.

Spark е платформата, където можем да съхраняваме данните в Data Frame и да ги обработваме. Разработчик на приложения, Data Scientist, Data Analyst може да използва Spark за обработка на огромното количество данни в рамките на минимален период от време. Можем да използваме функция като интерактивен, итеративен, анализ на данни в Spark.

Искровото стрийминг е още една функция, при която можем да обработваме данните в реално време. Банковият домейн трябва да проследи транзакцията в реално време, за да предложи най-добрата сделка на клиента, проследявайки подозрителни транзакции. Искровото стрийминг е най-популярно в по-младото поколение Hadoop. Spark е лесен за разработване API, който ще помогне на програмист бързо да работи върху поточни проекти. Искровото поточно предаване лесно ще възстанови загубените данни и ще може да се достави точно след като архитектурата е налице. И без допълнителни усилия за кодиране Едновременно можем да работим върху искрово поточно предаване и исторически партидни данни (Lambda Architecture).

В Spark streaming можем да използваме множество инструменти като flume, Kafka, RDBMS като източник или мивка.

Или можем директно да предаваме от RDBMS към Spark.

Можем да пуснем искра отгоре на HDFS или без HDFS. Ето защо всички говорят за нейната подмяна на Hadoop. HDFS е базова файлова система за Hadoop. Можем да използваме HDFS като източник или целева дестинация.

С помощта на Spark SQL използвайте основни SQL заявки за обработка на данните. Тази искра предоставя по-добри характеристики като Mlib (Машинно библиотечно обучение) за учен с данни за прогнози.

Сравнение между главата на Kafka срещу Spark (Инфографика)

По-долу е топ 5 на сравнение между Кафка срещу Искра

Ключова разлика между Кафка срещу Искра

Нека да обсъдим някои от основните разлики между Kafka срещу Spark:

  • Kafka е брокер на съобщения. Spark е платформата с отворен код.
  • Kafka има продуцент, потребител, тема за работа с данни. Там, където Spark предоставя платформа, издърпайте данните, задръжте ги, обработвайте и натискайте от източника към целта.
  • Kafka осигурява поточно предаване в реално време, процес на прозореца. Когато Spark позволява както поточно предаване в реално време, така и партиден процес.
  • В Кафка не можем да извършим трансформация. Където в Spark изпълняваме ETL
  • Kafka не поддържа никакъв език за програмиране, който да трансформира данните. Където искрата поддържа множество езици и библиотеки за програмиране.
  • Така Kafka се използва за поточно предаване в реално време като канал или посредник между източник и цел. Когато Spark използва за поточно предаване в реално време, пакетен процес и ETL също.

Характеристики на Kafka vs Spark

Има някои основни характеристики:

  1. Поток на данни: Kafka срещу Spark осигуряват поточно предаване на данни в реално време от източник към цел. Kafka просто Поток на данните към темата, Spark е процедурен поток от данни.
  2. Обработка на данни: Не можем да извършим никаква трансформация на данни, при която Spark можем да трансформираме данните.
  3. Съхранение на данни: Kafka поддържа данни до определено време, както е определено в конфигурацията. За да запазим данните, трябва да използваме рамка от данни или обект от набор данни.
  4. Трансформация на ETL: С помощта на Spark можем да изпълняваме ETL, където Kafka не предоставя ETL.
  5. Управление на паметта: Spark използва RDD за съхраняване на данни по разпределен начин (т.е. кеш, локално пространство), където Kafka съхранява данни в Topic, т.е. в буферна памет.

Таблица за сравнение между Kafka срещу Spark

По-долу е най-горното сравнение между Кафка срещу Искра:

Критерии за характеристикиApache SparkКафка
скорост100 пъти по-бърз от HadoopПрилична скорост
обработванеОбработка в реално време и партидаСамо в реално време / обработка на прозорци
затруднениеЛесен за научаване, защото на модули от високо нивоЛесна за конфигуриране
възстановяванеПозволява възстановяване на дялове с помощта на Cache и RDDПовреда толерантни / репликация
ИнтерактивностИма интерактивни режимиНяма интерактивен режим / Консумирайте данните

заключение

Можем да използваме Kafka като посредник на съобщения. Може да запази данните за определен период от време. С помощта на Kafka можем да извършваме операции с прозорец в реално време. Но ние не можем да извършим ETL трансформация в Kafka.Using Spark можем да запазим данни в обекта на данни и да извършим ETL трансформации от край до край.

Така че това е най-доброто решение, ако използваме Kafka като стрийминг платформа в реално време за Spark.

Препоръчителен член

Това е ориентир за най-високата разлика между Кафка срещу Спарк. Тук също обсъждаме ключовите разлики между Kafka и Spark с инфографика и таблица за сравнение. Може да разгледате и следните статии, за да научите повече. Можете също да разгледате следните статии, за да научите повече -

  1. Разлика между Apache Kafka срещу Flume
  2. Apache Storm срещу Kafka
  3. Apache Hadoop срещу Apache Spark
  4. Google Cloud срещу AWS
  5. Кафка срещу Кинезис | Топ 5 разлики

Категория: