Објашњени акумулатори варница: Апацхе варница



Овај Апацхе Спарк блог детаљно објашњава акумулаторе Спарк. На примерима научите употребу акумулатора Спарк. Акумулатори варница су попут бројача Хадооп Мапредуце.

Прилог Притхвирај Босе

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





Шта су акумулатори?

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

Да бисмо разумели зашто су нам потребни акумулатори, погледајмо мали пример.



Ево измишљеног дневника трансакција ланца продавница широм централне регије Колката.

logs-Spark-accumulators

Постоје 4 поља,

Поље 1 -> Град



Поље 2 -> Локалитет

Поље 3 -> Категорија продате јединице

мискл туторијал за почетнике са примерима

Поље 4 -> Вредност продатог предмета

Међутим, евиденције могу бити оштећене. На пример, други ред је празан, четврти ред извештава о мрежним проблемима и на крају последњи ред показује продајну вредност од нуле (што се не може догодити!).

Можемо користити акумулаторе за анализу дневника трансакција како бисмо сазнали број празних евиденција (празних редова), број отказа мреже, било који производ који нема категорију или чак број пута када је забележена нулта продаја. Комплетан дневник узорака можете пронаћи овде .
Акумулатори су применљиви на било коју операцију која је,
1. Комутативно -> ф (к, и) = ф (и, к) , и
2. Асоцијативни -> ф (ф (к, и), з) = ф (ф (к, з), и) = ф (ф (и, з), к)
На пример, сума и макс функције задовољавају горе наведене услове док просек не.

Зашто користити Спарк акумулаторе?

Зашто су нам сада потребни акумулатори и зашто једноставно не користимо променљиве као што је приказано у доњем коду.

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

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

како се користи подниз у скл-у

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

Људи упознати са Хадооп Мап-Редуце приметиће да су Спарк-ови акумулатори слични Хадооп-овим Бројачима Мап-Редуце.

Упозорења

Када користимо акумулаторе, постоје нека упозорења којих ми као програмери морамо бити свесни,

  1. Рачунања изнутра трансформације процењују се лењо, па ако не поступак се дешава на РДД-у трансформације се не извршавају. Као резултат тога, акумулатори који се користе унутар функција попут Мапа() или филтер () неће бити погубљени, осим ако неки поступак дешавају се на РДД.
  2. Спарк гарантује ажурирање акумулатора у акције само једном . Дакле, чак и ако се задатак поново покрене и линија поново израчуна, акумулатори ће се ажурирати само једном.
  3. Спарк не гарантује за ово трансформације . Дакле, ако се задатак поново покрене и линија поново израчуна, постоје шансе за нежељене нежељене ефекте када се акумулатори ажурирају више пута.

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

Имате питање за нас? Спомените их у одељку за коментаре и јавићемо вам се.

Повезани постови:

Апацхе Спарк цомбБиКеи Објашњено