Започните обраду података помоћу Кафке и Спарк-а

Обрада великих података је једна од најсложенијих процедура са којима се организације суочавају. Процес постаје компликованији када имате велику количину података у реалном времену.

У овом посту ћемо открити шта је обрада великих података, како се то ради и истражити Апацхе Кафку и Спарк – два најпознатија алата за обраду података!

Шта је обрада података? Како се то ради?

Обрада података се дефинише као свака операција или скуп операција, без обзира да ли се врши или не помоћу аутоматизованог процеса. Може се сматрати прикупљањем, редоследом и организацијом информација у складу са логичном и одговарајућом диспозицијом за интерпретацију.

Када корисник приступи бази података и добије резултате за своју претрагу, обрада података је та која му даје резултате који су му потребни. Информације извучене као резултат претраге су резултат обраде података. Зато информациона технологија има фокус свог постојања усредсређен на обраду података.

Традиционална обрада података обављена је коришћењем једноставног софтвера. Међутим, са појавом великих података, ствари су се промениле. Велики подаци се односе на информације чија запремина може бити преко сто терабајта и петабајта.

Штавише, ове информације се редовно ажурирају. Примери укључују податке који долазе из контакт центара, друштвених медија, података о трговању на берзи, итд. Такви подаци се понекад називају и ток података – стални, неконтролисани ток података. Његова главна карактеристика је да подаци немају дефинисана ограничења, тако да је немогуће рећи када ток почиње или се завршава.

Подаци се обрађују како стигну на одредиште. Неки аутори то зову обрада у реалном времену или онлајн. Други приступ је блоковска, групна или ванмрежна обрада, у којој се блокови података обрађују у временским интервалима од сати или дана. Често је серија процес који се покреће ноћу, консолидујући податке тог дана. Постоје случајеви када временски оквири од недељу дана или чак месец дана генеришу застареле извештаје.

С обзиром да су најбоље платформе за обраду великих података путем стриминга отворени извори као што су Кафка и Спарк, ове платформе омогућавају коришћење других различитих и комплементарних. То значи да се, будући да су отворени код, брже развијају и користе више алата. На овај начин, токови података се примају са других места променљивом брзином и без икаквих прекида.

Сада ћемо погледати два најпознатија алата за обраду података и упоредити их:

Апацхе Кафка

Апацхе Кафка је систем за размену порука који креира апликације за стриминг са континуираним протоком података. Првобитно креиран од стране ЛинкедИн-а, Кафка се заснива на евиденцији; дневник је основни облик складиштења јер се свака нова информација додаје на крај датотеке.

  Побољшајте начин на који Фирефок отвара, затвара и наручује картице помоћу Таб Декуе-а

Кафка је једно од најбољих решења за велике податке јер је његова главна карактеристика висока пропусност. Са Апацхе Кафка, могуће је чак трансформисати групну обраду у реалном времену,

Апацхе Кафка је систем за размену порука за објављивање и претплату у којем апликација објављује, а апликација која се претплати прима поруке. Време између објављивања и пријема поруке може бити милисекунде, тако да Кафкино решење има мало кашњење.

Радови Кафке

Архитектура Апацхе Кафке обухвата произвођаче, потрошаче и сам кластер. Произвођач је свака апликација која објављује поруке кластеру. Потрошач је свака апликација која прима поруке од Кафке. Кафка кластер је скуп чворова који функционишу као једна инстанца сервиса за размену порука.

Радови Кафке

Кафка кластер се састоји од неколико брокера. Брокер је Кафка сервер који прима поруке од произвођача и записује их на диск. Сваки брокер управља листом тема, а свака тема је подељена на неколико партиција.

Након пријема порука, брокер их шаље регистрованим потрошачима за сваку тему.

Апацхе Кафка подешавањима управља Апацхе Зоокеепер, који чува метаподатке кластера као што су локација партиције, листа имена, листа тема и доступних чворова. Дакле, Зоокеепер одржава синхронизацију између различитих елемената кластера.

Зоокеепер је важан јер је Кафка дистрибуирани систем; односно писање и читање обавља више клијената истовремено. Када дође до квара, чувар зоолошког врта бира замену и обнавља операцију.

Случајеви употребе

Кафка је постао популаран, посебно због употребе као алата за размену порука, али његова свестраност иде даље од тога и може се користити у различитим сценаријима, као у примерима испод.

Мессагинг

Асинхрони облик комуникације који раздваја стране које комуницирају. У овом моделу, једна страна шаље податке као поруку Кафки, па их друга апликација касније користи.

Праћење активности

Омогућава вам да чувате и обрађујете податке који прате интеракцију корисника са веб локацијом, као што су прикази страница, кликови, унос података итд.; ова врста активности обично генерише велики обим података.

метрике

Укључује прикупљање података и статистике из више извора за генерисање централизованог извештаја.

Агрегација дневника

Централно агрегира и складишти датотеке евиденције које потичу из других система.

Стреам Процессинг

Обрада цевовода података састоји се од више фаза, где се сирови подаци конзумирају из тема и агрегирају, обогаћују или трансформишу у друге теме.

Да би подржала ове функције, платформа у суштини нуди три АПИ-ја:

  • Стреамс АПИ: Делује као стреам процесор који троши податке из једне теме, трансформише их и уписује у другу.
  • Цоннецторс АПИ: Омогућава повезивање тема са постојећим системима, као што су релационе базе података.
  • АПИ-ји произвођача и потрошача: Омогућава апликацијама да објављују и конзумирају Кафка податке.

Прос

Реплицирано, партиционирано и уређено

Поруке у Кафки се реплицирају преко партиција преко чворова кластера редоследом којим стижу како би се осигурала сигурност и брзина испоруке.

Трансформација података

Са Апацхе Кафка-ом, могуће је чак и трансформисати групну обраду у реалном времену користећи АПИ за батцх ЕТЛ стреамс.

Секвенцијални приступ диску

Апацхе Кафка задржава поруку на диску, а не у меморији, јер би требало да буде бржа. У ствари, приступ меморији је бржи у већини ситуација, посебно када се размишља о приступу подацима који се налазе на насумичне локације у меморији. Међутим, Кафка обавља секвенцијални приступ и у овом случају је диск ефикаснији.

  5 најбољих опција за покретање Андроида на Распберри Пи

Апацхе Спарк

Апацхе Спарк је машина за велике податке и скуп библиотека за обраду паралелних података у кластерима. Спарк је еволуција Хадооп-а и програмске парадигме Мап-Редуце. Може бити 100 пута бржи захваљујући ефикасном коришћењу меморије која не задржава податке на дисковима током обраде.

Спарк је организован на три нивоа:

  • АПИ-ји ниског нивоа: Овај ниво садржи основну функционалност за покретање послова и друге функционалности које захтевају друге компоненте. Друге важне функције овог слоја су управљање безбедношћу, мрежом, планирањем и логичким приступом системима датотека ХДФС, ГлустерФС, Амазон С3 и другима.
  • Структурирани АПИ-ји: Ниво структурираних АПИ-ја бави се манипулацијом подацима преко скупова података или оквира података, који се могу читати у форматима као што су Хиве, Паркет, ЈСОН и други. Користећи СпаркСКЛ (АПИ који нам омогућава да пишемо упите у СКЛ-у), можемо манипулисати подацима онако како желимо.
  • Висок ниво: На највишем нивоу, имамо Спарк екосистем са различитим библиотекама, укључујући Спарк Стреаминг, Спарк МЛлиб и Спарк ГрапхКс. Они су одговорни за бригу о стримингу и околним процесима, као што је опоравак од пада, креирање и валидација класичних модела машинског учења и рад са графиконима и алгоритмима.

Рад Спарк-а

Архитектура Спарк апликације састоји се од три главна дела:

Програм драјвера: Он је одговоран за оркестрирање извршења обраде података.

Цлустер Манагер: То је компонента одговорна за управљање различитим машинама у кластеру. Потребно само ако Спарк ради дистрибуирано.

Раднички чворови: Ово су машине које обављају задатке програма. Ако се Спарк покреће локално на вашој машини, играће програм Дривер и Воркес улогу. Овај начин покретања Спарка назива се самостални.

Преглед кластера

Спарк код се може написати на више различитих језика. Спарк конзола, названа Спарк Схелл, интерактивна је за учење и истраживање података.

Такозвана Спарк апликација се састоји од једног или више послова, омогућавајући подршку обраде података великих размера.

Када говоримо о извршењу, Спарк има два режима:

  • Клијент: Драјвер ради директно на клијенту, који не пролази кроз Ресоурце Манагер.
  • Кластер: управљачки програм који се покреће на главној апликацији преко менаџера ресурса (у режиму кластера, ако се клијент прекине, апликација ће наставити да ради).

Неопходно је правилно користити Спарк како би повезани сервиси, као што је Ресоурце Манагер, могли да идентификују потребу за сваким извршавањем, обезбеђујући најбоље перформансе. Дакле, на програмеру је да зна који је најбољи начин да покрене своје Спарк послове, структурира упућени позив, а за то можете структурирати и конфигурисати Спарк извршиоце онако како желите.

Спарк послови првенствено користе меморију, тако да је уобичајено прилагођавање вредности Спарк конфигурације за извршиоце радног чвора. У зависности од Спарк радног оптерећења, могуће је утврдити да одређена нестандардна Спарк конфигурација обезбеђује оптималније извршавање. У том циљу, могу се извршити упоредни тестови између различитих доступних опција конфигурације и саме подразумеване Спарк конфигурације.

Користи случајеве

Апацхе Спарк помаже у обради огромних количина података, било у реалном времену или архивираних, структурираних или неструктурираних. У наставку су неки од његових популарних случајева употребе.

  Шта је ОТГ складиште?

Обогаћивање података

Компаније често користе комбинацију историјских података о клијентима са подацима о понашању у реалном времену. Спарк може помоћи у изградњи континуираног ЕТЛ цевовода за претварање неструктурираних података о догађајима у структуриране податке.

Детекција покретача догађаја

Спарк Стреаминг омогућава брзо откривање и реаговање на неко ретко или сумњиво понашање које би могло да укаже на потенцијални проблем или превару.

Сложена анализа података сесије

Користећи Спарк Стреаминг, догађаји у вези са сесијом корисника, као што су њихове активности након пријављивања у апликацију, могу се груписати и анализирати. Ове информације се такође могу континуирано користити за ажурирање модела машинског учења.

Прос

Итеративна обрада

Ако је задатак да се подаци више пута обрађују, Спарк-ови отпорни дистрибуирани скупови података (РДД) дозвољавају вишеструке операције мапе у меморији без потребе за писањем привремених резултата на диск.

Графичка обрада

Спарк-ов рачунарски модел са ГрапхКс АПИ је одличан за итеративне прорачуне типичне за графичку обраду.

Машинско учење

Спарк има МЛлиб — уграђену библиотеку машинског учења која има готове алгоритме који се такође покрећу у меморији.

Кафка против Спарка

Иако је интересовање људи и за Кафку и за Спарк било скоро слично, постоје неке велике разлике између њих двоје; Хајде да погледамо.

#1. Обрада података

Кафка је алатка за стримовање и складиштење података у реалном времену која је одговорна за пренос података између апликација, али није довољна за изградњу комплетног решења. Због тога су потребни други алати за задатке које Кафка нема, као што је Спарк. Спарк је, с друге стране, платформа за обраду података која се први пут креће у пакету која извлачи податке из Кафкиних тема и трансформише их у комбиноване шеме.

#2. Управљање меморијом

Спарк користи Робуст Дистрибутед Датасетс (РДД) за управљање меморијом. Уместо да покушава да обради огромне скупове података, он их дистрибуира на више чворова у кластеру. Насупрот томе, Кафка користи секвенцијални приступ сличан ХДФС-у и чува податке у бафер меморији.

#3. ЕТЛ Трансформатион

И Спарк и Кафка подржавају процес ЕТЛ трансформације, који копира записе из једне базе података у другу, обично са трансакционе основе (ОЛТП) на аналитичку основу (ОЛАП). Међутим, за разлику од Спарк-а, који долази са уграђеном способношћу за ЕТЛ процес, Кафка се ослања на Стреамс АПИ да би га подржао.

#4. Дата Персистенце

Спарк-ова употреба РРД-а омогућава вам да складиштите податке на више локација за каснију употребу, док у Кафки морате дефинисати објекте скупа података у конфигурацији да бисте сачували податке.

#5. Потешкоће

Спарк је комплетно решење и лакше за учење захваљујући подршци за различите програмске језике високог нивоа. Кафка зависи од бројних различитих АПИ-ја и модула независних произвођача, што може отежати рад са њима.

#6. Опоравак

И Спарк и Кафка пружају опције опоравка. Спарк користи РРД, који му омогућава да непрекидно чува податке, а ако дође до квара кластера, може се опоравити.

Кафка континуирано реплицира податке унутар кластера и репликацију међу брокерима, што вам омогућава да пређете на различите брокере ако дође до квара.

Сличности између Варнице и Кафке

Апацхе СпаркАпацхе КафкаОпенСоурцеОпенСоурцеБуилд Стримовање података АпплицатионБуилд Стреаминг података АпплицатионСуппортс Статефул ПроцессингСуппортс Статефул ПроцессингСуппортс СКЛСуппортс СКЛСличности између Спарк и Кафка

Завршне речи

Кафка и Спарк су алати отвореног кода написани у Сцали и Јави, који вам омогућавају да направите апликације за стриминг података у реалном времену. Имају неколико заједничких ствари, укључујући обраду стања, подршку за СКЛ и ЕТЛ. Кафка и Спарк се такође могу користити као комплементарни алати који помажу у решавању проблема сложености преноса података између апликација.